Web/ネットワーク
スマホアプリがアプリ単体で動く事は珍しく、webサービス・サーバーなどにネットワーク経由で通信して動くアプリが多い。
3G/LTEとWi-Fi
モバイル通信をサポートする3G/LTE
インターネットに無線LANで接続するWi-Fi
一般的にWi-Fiの方が通信速度が速いとされてきたが、最近LTEの普及で変わりつつある。
しかし、LTEは通信量規制がある為、大きいデータをやりとりすると速度制限される。通信速度が速いので要注意。
なので、大きいファイルのやりとりは、Wi-Fiのみで行う等の制限が必要。
ネットワーク処理のフィードバック
ネットワークは、更新・停止があるように、通信してるもの。
なので、今現在通信中なのか、そうでないのかユーザーにわかりやすく表示する必要性もある。
バックグランドで通信(ユーザーにわからない)する事で、ストレスなく使用できたりするが、隠しすぎると、ユーザーの不信感にも繋がる。両立が絶妙で、難しいところでもある。
SSL
スマホからの通信は認証情報を含むHTTPSで通信することが非常に多い。
HTTPSで通信を実装するのは難しくはないが、独自webサービスを立ち上げる際に、自己署名証明書を使う事があるが、iOSからは自己署名証明書でHTTPSサーバーに接続するとセキュリティーエラーになる。
いくつかの回避方法はあるが、面倒なので、いろいろな手間を考えると最初から正規に発行されたSSL証明書を利用する方がいい。
サーバ・クラウド
アプリにおいて、サーバ・クラウドとを利用するのは最近必要不可欠になりつつある。
アプリの開発においてスピードが求められるようになっているので、クライアントとサーバの関係の知識を持ってる方が有利。
なので、PaaS(Platform as a Service)、アプリケーションサーバやデータベースウェアの動向にも注目しておくほうがいい。
BaaS
スマホアプリのバックエンドに多く求められる機能として、Key-ValueやRDBベースのデータストアや写真の画像データを保管するファイルストレージ、プッシュ通知サーバ機能、各種SNSによるアカウント認証やAPI連携などがある。
これらの機能を気にしていちいち開発すると、時間とコストが毎回かかります。
そこで、こういった機能をオールインワンでスケーリングを含めて提供するサービスBaaSが最近登場してます。
無料でサービスを提供したり、各OS向けに開発キットなどを提供してるサービスもあります。
オープンソースソフトウェア・外部ライブラリ
iOSにも大量のオープンソースソフトウェアが存在します。
いろいろなサイトで公開されています。
スクリーンショットなどを使ってわかりわすく紹介してるサイトもあります。
ライブラリの利用と管理
ライブラリをプロジェクトに組み込む方法はいくつかあります。
・ヘッダファイルとライブラリファイル(フレームワーク化することも可)をインポートする
・ソースを全てプロジェクトにインポートする
・プロジェクトとして読み込み全体をワークスペース化する
注意が必要なのはCPUの種類。64ビット向けのCPUなど注意が必要。
ライセンスの明記
オープンソースソフトウェアを利用する場合は、サーバで動かす訳でなく、アプリが利用するので、オープンソースライブラリソフトウェアのライセンスをどこかに明記する必要があります。
一般的には、アプリ内のヘルプに表記を加えるか、iOS自体の設定でアプリの欄に表示させる事が多いです。
デザインとインターフェース
Appleは端末を含め、iOS全体で統一感をもたす為、ユーザエクスペリエンスを第一に考えてます。
ガイドライン。ルールをまとめたものが「iOSヒューマンインターフェイスガイドライン」になります。
端末と画面のアプリ領域
iOSは端末の種類が少なく画面サイズの種類も少なく、決め打ちとなるサイズでアプリを開発できます。
例外として、一部の状態で「通話中」「録音中」「デザリング中」といったステータスバーの高さが変わるので、注意が必要。
またiPadに関しては、横長でも使えるようにするようにガイドラインに明記されています。
ゲームのように常にフルスクリーンになるアプリ以外はルールをまもらないといけない。
基準サイズによるユーザビリティ
iOSには全体的に基準となるサイズが存在します。
44ピクセル
です。
一般的なアプリのリストにおいて、1項目の高さは最低44ピクセルを保って並んでます。
これはiPadでも同じです。
このルールのおかげで、ユニバーサルアプリ(iPhone・iPad両方で動く)を作る際のコスト削減に役立ってます。
Retina対応
Retinaなに対応する為には、Retina対応の画像ファイルを余分にひとつ用意することです。
普通の画像ファイルに対して、Retina対応画像ファイルには「@2x」をつける事で対応します(拡張子は含まない)
現状、Retina化が進んでおり、「@2x」ファイルに限定しても問題ないかもしれません。
細分化するアイコンサイズ
iOSの違い、iPhone・iPadの違い、Spotlightで使用するアイコン等、アイコンを作成する際にはRetina対応を含め、最大14種類のサイズを用意する必要がある。
今後も増えるかも・・・