Monthly Archives: June 2016

Swift: アプリケーションのスリープを無効にする

すべてのアプリにおいて、開発者が想定している使い方をしてくれるほどユーザーは優しくはありません。 なかにはアプリ使用中にも関わらずいきなりスリープボタンを押す、といった開発側には嫌がらせともとれる想定外の行動をとるユーザーもいます(笑) ユーザーの意思によるスリープを抑止することはできませんが、アプリ側で自動的にスリープしない方法は存在します。 今回は、このアプリのスリープを無効にする方法を説明したいと思います。 目次 アプリのスリープを無効にする まとめ アプリのスリープを無効にする UIApplication クラスのプロパティに idleTimerDisabled という Bool 値があるので、これを true にすればアプリがスリープしなくなります。 以下は AppDelegate の didFinishLaunchingWithOptions 内に記述した場合の例です。 AppDelegate.swift まとめ この設定を行うとアプリがスリープしなくなるので、当然ながら電力の消費量も多くなってしまうことが考えられます。 やみくもにスリープしなくなるアプリも問題ですので、自動的にスリープされると都合が悪い処理が行なわれている部分でのみ 設定を切り替えるようにすればいいかと思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Swift: WKWebView の userContentController で取得した JSON を使用する

WKWebView は、JavaScript の受け渡しがとても楽に行えるのが大きなメリットです。 単なる文字列としてメッセージ送信を実行すれば、それだけでネイティブ側をコントロールできるのですが、JSON 自体をメッセージで送信し、メッセージハンドラ経由で WKWebView で JSON を受け取ることも可能です。 今回は、メッセージハンドラで JSON を受け取り SwiftyJSON でパースした値を print 出力したいと思います。 目次 準備 JSON を送受信する まとめ 準備 Lead(承) JSON の準備 サーバー側で適当な JSON を用意します。 WKWebView の準備 ViewController に WebKit をインポートし、デリゲートメソッド userContentController を実装しておきます。 SwiftyJSON の準備 そのまま JSON を利用することも可能ですが、今回は JSON へのアクセスを簡単にしてくれる SwiftyJSON をダウンロードし、プロジェクトにインポートしておきます。 これで準備は完了です。 JSON を送受信する 先ほどの JSON をメッセージハンドラで送信、ViewController で受信します。 メッセージ(JSON)の送信 メッセージ(JSON)の受信 userContentController の中で受け取った JSON を SwiftyJSON でデコードし、print 出力します。 結果 まとめ とくに面倒な手順もなく、思いの外かんたんに JSON がネイティブに受け渡せたことと思います。 現在 WKWebView がデファクトスタンダードとなりつつあり、今後は UIWebView から WKWebView への移行は加速していくと思われます。 WKWebView で実現できないことは、セキュリティ上の問題があることが多いはずですので、UIWebView を利用しているアプリがあれば、早めにシフトしておくといいのではないでしょうか。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Xcode: アプリビルド時に dyld`dyld_fatal_error が出た場合の解決方法

アプリのビルド時、dyld`dyld_fatal_error と言うエラーが発生することがあります。 目にする機会は非常に稀ですが、今回はこのエラーが発生した場合の解決方法をメモしておきます。 目次 dyld`dyld_fatal_error が出た場合の解決方法 まとめ dyld`dyld_fatal_error が出た場合の解決方法 Product -> Clean (shift+command+K) でクリーン実行後、ビルドすれば問題は解決します。 まとめ このエラーの解決方法は Clean コマンド一発で済みますが、頻繁に発生するものではなく、どちらかというと開発者側に責任がない(プログラム上に問題がない)ときに起こるため、発生するとすごく焦ります。 自分の場合、開発も終わりに近づき Certificate 周りの変更を Apple Developer 側で行った際に発生しました。 ビルド時おまじないのように、クリーンしてからビルド、という手順が習慣になっていれば、このエラーに遭遇することはまずありませんが、覚えておいて損はないかと思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Swift: アプリ内でユニーク ID (UUID) を生成する

サーバーからユーザーのユニークな ID を取得し、データ処理を行うことはよくあると思います。 一方アプリからユニークな ID を発行し使用したい場合、ID 生成のためのクラスやファンクションを実装することになります。 今回は、Swift であらかじめ用意されている関数を使用し、ユニークな ID を生成する方法をメモしておきます。 目次 ユニークな ID (UUID) を生成する まとめ ユニーク ID (UUID) を生成する 以下のように NSUUID メソッドを使用すれば、たった1行でユニーク ID (UUID) が生成できます。 UUID 生成 結果 まとめ 上記 UUID メソッドでは 16 進数で 32 桁の ID を生成します。 もちろん、このメソッドでは 100% ユニークな値が保証されるわけではありません。 ちなみに、この方法で生成された ID が被ってしまう確率は、 340,282,366,920,938,463,463,374,607,431,768,211,456 分の 1 (340澗2823溝6692穰9384634垓6337京4607兆4317億6821万1456) です。安心して使わせていただきましょう(笑) この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。