iPhone5かどうかを、画面サイズで判別する方法

iPhoneかiPadかと画面の高さで判別します。


アプリをiPhone5に対応させるには?

iPhone5のRetina (4-inch)スクリーンに対応させる為にすべき事は
基本的には起動画面を用意してプロジェクトに追加するだけでいいようです。

名前は”Default-568h@2x.png”で
サイズは1136 x 640です。

単純な画面構成の場合はこれだけで対応できました。
複雑な場合はAuto Layoutを使うといいようです。

画面の大きさを判別するやり方でもできそうです。
iPhone5かどうかを、画面サイズで判別する方法


参考
What we need to support iPhone 5 screen?
iPhone5の4インチディスプレイで、既存のアプリを表示するとどうなるか?


更新された3つの日本語iOSのドキュメント

日本語に訳されたアップル公式のiOSドキュメントが3つ更新されています。

AppStoreへの登録に関するチュートリアル デバイスの準備(プロビジョニング)をし、iOSアプリケーションをApp Storeに登録する手順を説明しています。
Xcodeユニットテストガイド ユニットテストは、コードが設計仕様に則しているか検証し、さらに、修正を施す際にも仕様に反しないようにするための手段です。堅牢でセキュアなアプリケーションを記述するためにも有用です。ユニットテストの重要な構成要素として、テスト可能な最小単位(ユニット)でコードをテストする、「テストケース」という概念があります。
この資料では、ユニットテストを念頭に置きながら製品を開発する手順、既存のプロジェクトにユニットテストを導入する方法を解説しています。
iOSチーム管理ガイド iOSアプリケーションの開発には、コーディング作業と管理作業の両方が必要で、多くの場合、チームが協力し合ってひとつのアプリケーションを開発します。この資料では管理作業について説明しています。


ダブルクオーテーションや改行などの特殊文字を文字列に含める方法

ダブルクォーテーションや改行などのが入った文字列を使いたいときがあると思いますが、その時はバックスラッシュ「\」を使います。

ダブルクオーテーション「”」 \”
改行 \n
タブ \t
%%
Macの日本語キーボードではoptionキーを押しながら¥キーを押します。
USキーボードでは\キーがあるのでそれを使います。



NSErrorを使う時の注意点

何かを処理するメソッドで引数にNSErrorを渡すものがあります。

メソッド実行後にエラーになった場合にNSErrorにエラーメッセージが帰ってきて、エラーメッセージから解決方法を知ることができます。


▼下記のコードではドキュメントフォルダ内plistファイルを削除するもので、エラーのチェックを行なっています。



使うときに


と、初期値を入れずに使ってしまうと、NSErrorを参照した時に、参照先が適当な値になっているためにEXC_BAD_ACCESSが発生してしまいます。

NSError生成時にnilを指定して初期化することで回避できます。



アプリ開発の知識を共有できるサービス

Qiita


Qiitaは、「プログラミングに関する知識を記録、共有する最適なサービス」です。
自分が持っている知識を投稿して共有したり、他の人が投稿した知識を見て取り入れることができます。

GitHubまたはTwitterアカウントでのOAuth認証とアドレス/パスワードを登録を行い、タグ(iOSアプリ関係ですと”iPhone”や”Objective-C”などがあります)をフォローすると、そのタグが付いた投稿がフィードに流れてきます。

iPhoneもObjective-Cも現在数百の投稿があり、参考にしたい投稿がたくさんあるので利用してみてはいかがでしょうか。


オープンソースソフトウェアのライセンスの種類について

UIKitに用意されていないUIを使いたい時や、iOS SDKに用意されていないその他の機能を使いたい時などにオープンソースのソフトウェアを使うことがあると思います。

それぞれのオープンソースソフトウェアにはライセンスが指定されていて、そのライセンスの条件を満たした状態でオープンソースソフトウェア使う必要があります。

主なライセンスについて書いていきます。


GPL(GNU General Public License)


使用例

Linuxなど、世界で広く使われているライセンスです

1、無保証で、著作権の表示義務がある。

GPLライセンスのソフトウェアを使用した結果、いかなる損害が発生しても、責任は自分で負う必要があります。
また、著作権が表示された部分をそのままにしておく必要があります。

2、複製したり、改造したものを有償で販売したりできる。

GPLライセンスのソフトウェアを複製して改造して公開したり、販売したりすることは許されています。

3、制作物も自動的にGPLライセンスになる。

GPLライセンスのソフトウェアを使った場合、制作物も自動的にGPLライセンスになります。
制作物のライセンスを変更して独占的に販売することはできません。

GNU 一般公衆利用許諾契約書


New BSD License – 修正BSDライセンス


使用例

FreeBSD等のBSD系OS、PostgreSQL等のDBMSなど

条項

・著作権表示
・ライセンス条文(受け取った物と同じ著作権表示と許諾条件)
・無保証
の三点をドキュメント等に記載すれば、「BSDライセンスのソースコードを複製したり変更したりしたプログラム」を再配布する際に、組み込み後のソースコードを非公開にでき、ソースコードを受け取った時と異なる条件で配布することができます。

緩いライセンス形態となっており、商用のソフトウェアとして配布することができます。

BSDライセンス


MITライセンス(X11 License、MIT X License)

BSDライセンスを原型に作られたBSDスタイルのライセンスの一つであり、修正BSDライセンスとほぼ同等の条件になっています。

条項

・著作権表示を残す
・無保障

The MIT License


Apache Software License

BSDライセンスを原型に作られたBSDスタイルのライセンスの一つである。

条項

Apache Licenseのコードの使用していることを記述する
著作権表示と免責事項表示の保持する

Apache License, Version 2.0



CCライセンス(クリエイティブ・コモンズ、Creative Commons)

著作物全般を対象としたライセンスで、条項は4項目あり、「表示」を採用することが必須条件となっています。

「改変禁止」と「継承」は同時に採用できないので、
表示(CC BY)
表示-改変禁止(CC BY-ND)
表示-継承(CC BY-SA)
表示-非営利(CC BY-NC)
表示-非営利-改変禁止(CC BY-NC-ND)
表示-非営利-継承(CC BY-NC-SA)
の6通りの組み合わせから選択されます。

表示 (Attribution, BY)

著作権者を明記する必要があります。

非営利 (Noncommercial, NC)

営利目的で利用してはいけません。

改変禁止 (No Derivative Works, ND)

改変・変形・加工は禁止されています。

継承 (Share Alike, SA)

CCライセンスが付与された作品を、改変・変形・加工した場合は、元になった作品のライセンスを継承させた上で頒布することができます。


現在選択されている言語を取得する方法

現在選択されている言語を取得できれば、
「表示言語によって処理を分岐する」などができるようになります。


まず言語のリストを取得します。



取得したリストの0番目に、現在選択されている言語の言語コード(日本語なら”ja”)が格納されるので、NSStringに格納します。



あとは「initWithLocaleIdentifier」を使ってNSLocaleを生成します。



iPhoneアプリ設計の極意 ―思わずタップしたくなるアプリのデザイン

iPhoneアプリ設計の極意 ―思わずタップしたくなるアプリのデザイン




iPhoneアプリのユーザーインターフェースはどうあるべきか、
「思わずタップしたくなるアプリ」はどうすれば作れるのか、
を解説しています。

この本の中ではソースコードは一切登場しませんが、コードを書き始める前に考えるべきことが掴めると思います。
実際のアプリの例を交えながら、解説してあり、大変読み応えのある内容となっています。

この本の7章のサンプルがダウンロードできるようです。

7章のPDFサンプル





アプリ開発で困ったときに質問したり、解決法を探すことができるウェブサイト

Apple Developer Forums

公式のフォーラムです。英語です。英語が苦手な方は慣れてしまいましょう。

https://developer.apple.com/devcenter/ios/index.action
(LogInしてMenberCenterを開くとApple Developer Forumsに入れます)


StackOverFlow


エンジニアのためのQ&Aサイトです。

英語でやりとりされていますが、Q&Aの件数が多いので役に立つと思います。

エラーメッセージをコピペして検索すると解決法が見つかったりします。

StackOverFlow
StackOverFlow(objective-c)


iphone_dev_jp

Twitter上の、日本最大のiPhone開発者のコミュニティです。
@iphone_dev_jp 宛てにTweetすることで、iphone_dev_jpアカウントのフォロワー全員と情報を共有できます。
初めて参加する場合は「投稿上の注意」を読んでから投稿しましょう。

@iphone_dev_jp


さるでき.jp | iPhoneアプリ作りを楽しむ人のポータルサイト

iPhoneアプリ開発者の為のポータルサイトです。

アカウントを作って「サルできスト」になるとブログ(市場)を作成したり、フォーラム(寺子屋)で質問をすることができます。

サルでき.jp