iOS で VoIPプッシュ通知を試していてDeviceNotForTopicというエラーが出てハマったので解決策を共有。 原因 Provisioning ProfileとかCertificates周りに何かエラーがあるのかとばかり思っていたが、そうでもなかった。 Device Tokenは通常のAPNsのものと VoIP Push Notification のもので全く別のトークンとなる。APN […]
ロゴをNavigationViewのタイトルに載せる時なんてすごく多いと思うんですけど、navigationBarTitle()っていうメソッドはテキストしか受け付けてくれない。 ググってみるとstack overflowのこの投稿のような解決策(??)が出てくるんだけど、navigationBarItemsには端末毎に異なる微妙なpaddingが設定されているので、完全に中央に来させようと思うと […]
先日、キャスト(Type Casting)について原点的な疑問にぶつかった。 let a: Int = 28 let b = a as Any let c = b as! Int print(c - 1) // 27 このようにInt型で定義した値を、Any型にキャストし、再度Int型にキャストしたとする。 この時、Int型へのforce castは無事成功し、変数 c は整数型として扱うことが出 […]
UIStackView なるものがある。沢山のViewをまとめたり、動的に中身が変わるようなものでもデザインをうまく制御したりするのにとても便利だ。 その反面、Constraintsを雑に設定しても反映されないことがあるので多少の慣れが必要となる。今回は複雑な処理をしたときにパディングが思い通りにならなかったことと、解決策、またその過程で調べたことを書いていこうと思う。 問題点と解決策 まずは何が […]
久しぶりにブログを書くという手前、溜め込んだ叙情と気分の高揚が繊細な詩を生み出しそうな予感はする。けれどもそれらの妄想は差し戻して、イベントへの参加記を綴る。 イベントの詳細はこちらから。 なぜ参加したのか 正直に言うと、技術カンファレンスに参加するのは好きではなかった。そもそも人の話を聞き続けるという行為が苦手だったし、イベントで話を聞いてもそれがピンポイントで自分の興味の対象であることは少なか […]
ネイティブアプリの開発において、ユーザーの認証機能はとても重要です。今回はiOSアプリの開発においてログインをするときにTwitterのOAuth認証を使用する方法をまとめます。 認証に何を求めているか まず、手段について論じる前に、認証機能に何を求めるかということについて確認しておきます。 ユーザーが手軽に登録できること 面白そうだなというアプリをApp Storeからダウンロード […]
みなさん、暇な時何してますか? 大人になるにつれ自分が本当にやらなければならないことは増えてきます。しかし、やらなければならないことが山積みなのにも関わらず、やりたくなくて暇になる。こういうこと、ありますよね? これが悪いことなのか良いことなのかはわかりません。自分が一つのことに集中することが得意なら、暇なんて生み出さずに集中し続ければ良いと思いますが、何かを投げ出して暇になるからこそ見える価値観 […]