酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

開発-iOS

SVGKitをアップデートしたらLOG_LEVEL_VERBOSEの定義がなくてビルドができない

ikatomoは数多くのサードパーティー製のライブラリを使用しています。 ikatomoをSwift 3.0へアップデートさせようと考えました。しかし、ライブラリの多くはSwift 3.0対応中で現時点での移行は難しそうです。 となればikatomoの更新作業は放置でも良いのです…

Swift3.0でRealmSwiftのビルドが通らない

Xcode 8とiOS 10が正式に公開されました。Swift 2からSwift 3への移植は結構大変という前評判だったので、ボチボチ手をつけていくかぁ……とSwift 3対応を始めたもののすぐに詰まってしまいました。 最近作っているikatomoもPokétomoも、両方ともデータを保存…

SwiftでRGBからHSVへ変換する

RGBの値をHSVの値に変換するためのコードを書きました。大昔にC#で書いた処理をSwiftに移植しました。 説明は上記の記事をご覧ください。以下、HSVクラスです。 class HSV { //色相 var hue: Double = 0 //彩度 var saturation: Double = 0 //明度 var value…

iPhone 4sだとCIDetectorが使えない

iPhone 4sだとCIDetectorが使えません。APIとしては存在しているのですが、detector.featuresInImage(img)で常にnilが返されます。 少し悩んだのですが、フォーラムに同じ問題で悩んでいる方がいました。 CIDetector doesn’t work for QR-code detection o..…

Xcode 7でビルドしたアプリをApplication Loaderを使って申請するとInvalid Swift Supportが発生する

Jenkinsからxcodebuildを使ってipaファイルを生成します。Application Loaderを使ってipaファイルをアップロードするとInvalid Swift Supportが発生したとメールが送られてきます。 Appleから送られてくるメール Application Loaderを使ってアップロードする…

iOS 9でHeiti TC/SCが使えなくなっている

すこし前にHeiti SCを指定しているはずなのに意図通りフォントが表示されていないことがありました。調べてみたらiOS 9ではHeiti TC/SCが使えなくなっていることがわかりました。 フォント名 Heiti TC STHeitiTC-Light STHeitiTC-Medium Heiti SC STHeitiSC-…

Realm Swiftを使って複数の条件でソート(並べ替え)する

本記事ではRealm Swiftを使って複数条件でソートする方法を紹介します。使用しているRealm Swiftのバージョンは0.97.0です。 Realm Swiftを使って複数の条件でソート(並べ替え)する Realm Javaでの複数条件のソートしたい場合、「Realm Javaを使って複数の条…

SwiftでToday Extensionのデバイスの向きを判定する

少し前のエントリ「SwiftでToday Extensionの高さをUITableViewの高さに合わせる」で、Widgetの高さの上限値は「アプリ名のセクションを含めてWidgetが1画面で収まる高さ」と書いておきながら、デバイスを横にした時の処理を忘れていました。 下図は、現在開…

SwiftでSDWebImageを使ってダンロードした画像を加工してUIImageViewに表示する

iOSでネットワーク上のリソースをUIImageViewに表示するライブラリに「SDWebImage」というものがあります。導入方法については以下の記事で紹介しました。 SDWebImageを使ってUIImageViewに画像を表示させるには下記のように書くことができます。 // import …

SwiftでUIColorの色を一段階暗くする

// 一段階暗くする var color: UIColor = UIColor.redColor() var hue : CGFloat = 0 var saturation : CGFloat = 0 var brightness : CGFloat = 0 var alpha : CGFloat = 0 if color.getHue(&hue, saturation: &saturation, brightness: &brightness, alpha…

SwiftでもSDWebImageを導入する

SDWebImageは画像をダウンロードとダウンロードした画像のキャッシュをおこなってくれます。細かな設定があり、キャッシュ総容量であったり有効期限を指定して使うことができます。 導入にはいつもどおりCocoaPodsを使います。Podfileに下記のように記述しま…

iOSアプリ開発の記事一覧

iOSアプリケーションの開発Tipsを紹介しています。 目次 目次 導入 基本的なプログラミング 文字列操作 リフレクション View 拡張機能・エクステンション マルチメディア 画像処理 カメラ ネットワーク SDWebImage デバイス/センサー システム マルチスレッ…

SwiftでNSAttributedStringを使って文字列を装飾する(UILabelに画像を表示する)

直近でやっていたプロジェクトでNSAttributedStringに関する知識が少なくて苦労したので忘れないようにメモしておきます。 NSAttributedStringに関してはすでに色んなブログやサイトで紹介されているのでご存知の方も多いかもしれませんが文字列を装飾してく…

Swiftでシングルタップとダブルタップとロングプレス(ホールド)に同時に対応する

iOS 3.2からUIGestureRecognizerが追加されてからよく使っていたのですが、シングルタップとダブルタップ、ホールド(ロングプレス)に同時に対応します。 シングルタップとダブルタップはUITapGestureRecognizerクラスで対応することができます。ホールド(長…

Xcodeでのビルドを自動化するxcodebuildコマンドとIPAファイルを作成してiTunes Connect(Testflight)に投げる方法

2014年にAppleがTestflightを買収してから数年経ちました。Androidのサポートが打ち切られたりして対応に追われたこともありましたが、数年経ち公式にiTunes Connectのアプリ申請プロセスに組み込まれるようになりました。 iOS 8を公開した時期から1つのバー…

iOSでZBarSDKを使ってバーコードの読み込みをおこなう

すまべん・Androidの会勉強会の時に、モノタッチの中の人がバーコードを読み取る為にこんなライブラリを使っています・・・と、ZBarSDKを使われているのを知って、ぜひうちでも使ってみようと言う事になりました。ZBarSDKは、カメラプレビューからバーコード…

autoreleaseと僕とメモリ不足

Obj-Cにおけるオブジェクトの扱いは、allocだったり、retainだったり、autoreleaseだったりとややこしいですね。 NSAutoreleasePoolのリファレンスによると、メインスレッドでイベントループの最初にNSAutoreleasePoolが作られ、イベントループの最後にrelea…