Monthly Archives: July 2015

Swift: iOS アプリに SNS (Twitter, Facebook) 共有ボタンを実装する

Swift でアプリに SNS 共有ボタンを実装したいと思います。 アプリのユーザーがどれだけ SNS 共有機能を使ってくれるかは、アプリ自体の魅力や機能にもよりますが、どんな種類のアプリであれ、実装しておいたほうが好ましい機能ではあります。 今回 SNS 共有は Social フレームワークを使用し実装するので、ボタンのクリックイベントのメソッドに数行のコードを記述するだけで、簡単に Twitter や Facebook で情報を共有することが出来ます。 ■目次 Social.framework のインポート UIButton を配置する Twitter 共有のメソッドを記述する Facebook 共有のメソッドを記述する ■詳細説明 Social.framework のインポート UIViewController に Social フレームワークをインポートします。 ViewController.swift UIButton を配置する UIViewController の viewDidLoad で Twitter と Facebook という名称の UIButton を配置し各ボタンにメソッドを定義します。 ここでは viewDidLoad に直接 UIButton をコードで定義・配置していますが、Storyboard と IBOutlet を使っても構いません。 Twitter 共有のメソッドを記述する ViewController に viewDidLoad 内で twitter ボタンのアクションに指定した onClickTweetButton メソッドを定義します。 Facebook 共有のメソッドを記述する ViewController に viewDidLoad 内で facebook ボタンのアクションに指定した onClickFacebookButton メソッドを定義します。 ViewController 全体のコードは以下のようになります。 ViewController.swift ■結果 アプリをビルドし動作を確認します。 twitter タップ時の共有画面。 facebook タップ時の共有画面。 もし、ボタンをタップしてもデバイスで twitter や facebook のアカウントが設定されていなければ警告が出ます。 ■まとめ 今回のサンプルコードではテキストを SNS 共有しましたが、アプリ内で画像を取得し、画像や URL のリンクテキスト等も共有可能です。 アプリの目的に応じた情報を共有する機能を実装することで、より多くのユーザーにアプリの存在をアピールできるできるのではないでしょうか。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Swift: 配列をシャッフルする extension のサンプルコード

アプリ制作において、ジャンルを問わず配列をシャッフルする必要がある場面に遭遇することは多いかと思います。 今回は Swift の extension を使って配列内の値をシャッフルする方法を実装したいと思います。 配列をシャッフルする extension のサンプルコード File -> New -> File…で ShuffleExtension.swift ファイルを作成し、以下の NSMutableArray のエクステンションを記述します。(※このエクステンションを直接 ViewController 側へ記述しても問題ありません) ShuffleExtension.swift 結果 配列内がシャッフルされているのが確認できます。 まとめ Swift のエクステンションは大変便利ですが、乱用し過ぎてコードの可読性や保守性に問題が出ないようなルールや設計を心がけたいものです。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Mac OS X: ディレクトリを英語表記に変更する

みなさんは Mac のユーザーホームディレクトリのフォルダが、日本語表記になっていることに違和感はありませんか? Terminal では Desktop や Download.. と表記されているにも関わらず、Finder ではローカライズされて デスクトップ や ダウンロード.. となっています。 今回は OS や Finder の言語は日本語でいいのだけれど、ディレクトリだけは英語表記にしたい、と言うわがままな自分のためのメモです。 ディレクトリを英語表記に変更する Terminal を起動し、以下のコマンドを入力(Mac OS X 10.9 以降での方法となります) Terminal.app まとめ これをやるくらいなら、いっそ OS 自体が英語でもいいような気がしますが、すべてが英語だとやっぱり不便なものです。 全体のオペレーションに影響が出ない程度の今回の方法は、英語に不慣れな方でもオススメのカスタマイズなので一度お試し下さい。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Swift: アプリから写真へのアクセス許可を判定する

アルバムアクセスが実装されているアプリでは、初めてフォトライブラリへの保存や読み込みを行う場合、アクセスの許可を求めるダイアログが表示されます。 このときユーザーがアクセスを許可する・しないを選択したにも関わらず、次回のアクセスからこのダイアログは表示されなくなります。 フォトライブラリへアクセスすることを前提でつくられたアプリの場合、初回のダイアログで「許可しない」を選択したユーザーに対して、次回も再度アクセスを促す必要があります。 今回はそういったときに使える ユーザーが写真へのアクセスを許可したかどうかを判定する方法 を説明したいと思います。 アプリから写真へのアクセス許可を判定する フレームワークのインポート Xcode の Project > General > Linked Frameworks and Libraries より AssetsLibrary.framework をインポートします。 アクセス許可を判定する クラスファイルに上記の AssetFramework をインポートし、アルバムアクセスを判定したい任意のタイミングで ALAuthorizationStatus により判定を行います。 サンプルコード ViewController の viewDidLoad で、アルバムアクセスを判定するサンプルコードは以下のようになります。 ViewController.swift まとめ 一度ユーザーに写真アクセスを「許可しない」を選択された場合は、この判定を入れないと iOS の 設定 > アプリ名 > 写真 でアクセスを許可してもらわなければいけません。GPS 等の機能に関しても同様です。 iOS に不慣れなユーザーにとっては、これはある程度、難易度の高いオペレーションだと思います。 こういった仕様はセキュリティ上仕方ないことなのですが、iOS の場合、Apple が 厳格な審査 を行っているのですから、リリースを許可したアプリに関して、Apple はアプリ開発者とそれを利用するユーザーを考慮した最適解を模索し続けて欲しいと感じました。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。