iOS
iOSDC 2018 で @_bannzai_ さんの ~~ †††† 漆黒の魔法 Objecitve-C Runtime API †††† ~~ というセッションを聞いたので、 Objective-C の Method Swizzling について書いてみます。 セッションの資料はこちらです
まとめ Custom View / Custom ViewController どちらの場合も、 Storyboard とコードの両方から扱うためには、 View や ViewController そのものを xib で定義するのではなくて root view を xib で定義してinstantiate するのが良さそうです。
TL; DR Objective-C からも利用できる Swift コードを書く場合、 throws キーワード付きのメソッドは戻り値の型に制限がある 引数や戻り値にエラーを指定する際はカスタムエラー型ではなく Swift.Error 型を使う の 2 点に気をつけたほうがよいです。
表題の通りで、 WKWebView を継承したカスタムクラスを作って色々いじっていたら、 Web ページが表示されなくなってしまいました。 何も表示されず真っ白 スクロールやピンチイン・ピンチアウトはできる スクロールできる量は表示したい Web ページと同じっ…
開発中のアプリを複数の端末に入れたり消したりしながら動作確認していると、「これはどの時点のコミットからビルドしたんだっけ?」を知りたくなることが増えてきたので、 git のコミットハッシュを取得して Android / iOS アプリに表示する方法を調べまし…
iOS 11 で SFSafariViewController の仕様が変わり、 Cookie 等のデータが Safari とは独立した領域に保存されるようになりました。 これによってユーザの行動がアプリをまたいで追跡されるのを防ぎ、閲覧履歴の公開範囲を個々のアプリに限定することができ…
TL; DR Auto-Play Blocking は音声つき動画が自動再生されないよう Safari を設定できる機能ですが、 「音声なし動画の自動再生」「音声つき動画をミュートで自動再生」「音声つき動画を、ユーザ操作を契機として再生」することは可能です。
iOS アプリに搭載されているアプリ内ブラウザが WebView なのか SafariViewController なのかは、実は見た目で判別することができます。 iOS エンジニアでない方にはあまり馴染みがないようなので、まとめました。