None

アプリのアイコンをsipsコマンドで作成する None

アプリのアイコンをsipsコマンドで作成する

Macのターミナルからsipsコマンドを使えば様々なサイズのアイコンを楽に作成できます。 iOS12の今の時点では、一番大きな1024pxのアイコンに加え、iPhone用8種類、iPad用9種類、のアイコンが必要になっています。この17枚のリサイズした画像をコマンド一発で作成できます。 まず、102…
AWSのプッシュ通知をアプリで実装するための注意点 None

AWSのプッシュ通知をアプリで実装するための注意点

エンドポイントを最新に保つ エンドポイントが無効になると通知が届かなくなってしまいます。作成済みであっても、デバイストークンが変わった時には登録し直さないといけません。逆にインストール直後など、まだ通知が必要か分からない段階では無理に作成しないようにします。 AWSSNSでプッシュ通知の購読と解除を…
SwiftでCFDictionary None

SwiftでCFDictionary

SwiftはObj-Cに比べてより柔軟な書き方ができる反面、最適な書き方がよく分からない場合がある。省略できたりできなかったり。例えばCFDictionaryの場合。 よく見かけるコード func clear() { let query: = SecItemDelete(query as CFDic…
IBOutletCollectionをNSMutableArrayにする None

IBOutletCollectionをNSMutableArrayにする

同種のViewを配列で扱えるIBOutletCollectionは、普通に使うと変更できないNSArrayになります。ボタンのコレクションを宣言するとこんな感じ。 @property (nonatomic) IBOutletCollection(UIButton) NSArray<UIButt…
縦向きのスライダーVertical Sliderを作ってみよう None

縦向きのスライダーVertical Sliderを作ってみよう

Viewの向きを変えたいとき、今のところ、Storyboardからは直接回転させられません。ですので、初期化時にtransformで回転させますが、そうすると、制約でレイアウトを制御しにくくなります。目視でレイアウトを微調整できないのも不便ですよね。 妥協点を探る上で、縦向きのスライダーを考えてみま…
UIAlertControllerは拡張高い None

UIAlertControllerは拡張高い

UIAlertControllerはサブクラス化が禁止されていますが、内部では色々な事ができるように作られています。setValueを使うと上部にViewControllerを追加できるので画像を表示できるようにカスタマイズしてみました。取りあえずiOS10と11で動きます。 画像表示ダイナミックフ…