未経験からのiPhoneアプリ開発blog

iPhoneアプリ開発の独学をしています。学習した内容をメモ的に記録していきます。

アプリ開発『WeightLog』vol.32 配布用プロビジョニングプロファイル

アプリのリリース手続きの続きですが、絶対に挫折しない iPhoneアプリ開発「超」入門【iOS6対応版】の情報とともに、よく分かる!iOS アプリのリリース手順のまとめ | Developers.IOも参考にして進めました。

 

しかし、配布用プロビジョニングプロファイルを作成し、それをOrganizerに組み込む際に、なんとエラーが出てしばらくハマりました。

 

1 profile could not be installed on "◯◯のiPhone".

"◯◯のiPhone" is not included in this profile.

 

これは下記サイトで解決しました。

ios - Can't install Distribution provisioning profile - Stack Overflow

 

Xcode5の場合、配布用ファイルをデバイスにインストールする必要がないそうです。XcodeのWindow上部のメニューからPreferences→Accounts→View Detailsと進むと、既にXcodeには配布用ファイルが追加されていることが確認できます。配布用プロビジョニングファイルを作成して、ダウンロードしたものをダブルクリックした時点でここに自動的に追加されるそうです。

 

更に進めていくと、アプリのアーカイブを作成するということで、XcodeのProduct→Archiveを選択する部分があるのですが、ここでまさかの大量のエラーが発生しました。

 

これは下記サイトで解決です。

iphone - Apple Mach-O Linker Error when compiling for device - Stack Overflow

 

XcodeのprojectでBuild SettingsのArchitecturesをStandard(armv7、armv7s)に変更したらエラーが発生しなくなり、解決しました。

 

これで無事アーカイブの作成ができました。

あとは、App Storeに乗せるスクリーンショットや説明文を作成して、Appleのサーバーにアップロードしたら審査待ちです!!

アプリ開発『WeightLog』vol.31 アイコン作成

アプリの機能については計画していたものは全て実装できたので、コードを書くことからは離れ、Adobe Fireworksでアプリアイコン、起動画像を作成していました。そして、アプリアイコン、起動画像がついに完成しました!!

 

本当はこういうのは業者に委託するのが普通だと思います。特にアプリアイコンはアプリの顔なので、アプリの出来よりもとりあえずこのアイコンだけで判断される場合も多いと思うので。今ならランサーズとかクラウドワークスを利用すればオンラインで格安でプロに依頼できると聞きます。でも、今回は初の自作アプリ…というか初めて自分でプログラミングした作品なので、全て自分で作成しました。なので、全然アプリ開発を仕事にしているようなプログラマーさんのアプリとは比べものにならないくらいしょぼいです。。。

 

そもそも、iOSの入門本だけで独学して、今回練習、学習を兼ねて作成してみたということなので、そこまで拘っていなかったということもあります。

 

それでも、初の作品ということで一生懸命作成したつもりだし、実際自分的に「あったらいいな」と思うようなものが作れたので、初の作品にしては満足しています!

 

アプリ公開の手順については絶対に挫折しない iPhoneアプリ開発「超」入門【iOS6対応版】を参考にしています。今日はとりあえず、iTunes Connectでの手続きをしました。まだやることはあるので、続きもこちらの書籍を参考にしながら進めたいと思います。これ、めちゃめちゃわかりやすいです!

 

ちなみに、こちらはiOS7用に新しくリニューアルされた絶対に挫折しない iPhoneアプリ開発「超」入門【iOS7対応】が出ているので、これから購入する場合はこちらの最新版が良いですね。

 

絶対に挫折しない iPhoneアプリ開発「超」入門【iOS7対応】増補改訂版

絶対に挫折しない iPhoneアプリ開発「超」入門【iOS7対応】増補改訂版

  • 作者: 高橋京介
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2014/01/28
  • メディア: 大型本
 

 

 

アプリ開発『WeightLog』vol.30

前回までで、グラフタブを構成しているSecondViewControllerクラスに体重と日付のデータを組み込むことによって、グラフが完成できました!

これでほぼほぼ機能上は完成!と思っていたのですが、あれこれ修正点、改善点が出てくるものですね。妊婦用の設定を入れていたのですが、妊婦って普通、体重を減らすことよりも増やすことが目標になるので、グラフのY軸のメモリを今までは目標体重を下の方に持ってきていたのですが、妊婦の場合は逆で目標体重のY軸メモリはグラフの上の方に持っていかないといけませんね。でも、妊婦でも体重減らしたくなる場合もあるだろうし、うーんどうしよう…と思っていたところ、ここはいっそ設定タブにひとつボタンを追加して、減量か増量かテーマをユーザーに決めてもらうようにしました。それによって、グラフの見せ方を変えるということです。

 

また、ツイッターのツイート機能を付けようと思っていたので、テーマによってデフォルトの文字内容も変更しようというところで必要な仕様変更でした。

ちなみに、Twitterへの投稿機能の実装については下記URLを参考にしました。

画像やURLをFacebookやTwitter、LINEなどのSNSに共有する - Think Big Act Local

 

さらに、全体的にアプリを仕上げていくにあたり、いろいろ細かく調整するべき点がありました。修正した点と参考URLについては下記の通りです。

 

テキストフィールドの枠線について。太さ、角丸の半径を調整しました。

UITextFieldやUITextView等での枠線、radiusについて。 - koukiの日記

 

テキストフィールドをタップした時に出てくるツールバーをキーボードの真上に置くためにInputAccessoryViewを使いました。

iphone - UITextView doesn't show InputAccessoryView on first click - Stack Overflow

キーボードの完了ボタン - ソフト仕様書

 

テキストフィールドが画面の下の方にある場合に、出てきたキーボードでテキストフィールドが隠れないようにしました。

objective c - Keyboard covering textview on iPhone - Stack Overflow

 

あとは、背景のカラーやパターンをユーザーが好みに変更できるように、カラーとパターンをある程度こちらで用意し、選択できるような機能を追加しました。これはテキストフィールドをタップした時にピッカーで選択するような仕様になっています。背景カラーを変更するのはこちらのサイトにやり方が書かれています。また、パターンはAdobeFireworksで作成した画像をパターンの数だけ用意し、ユーザーが選択したものに応じてパターン用の画像を差し替えるような仕組みになっています。storyboard上で透明色にしたイメージビューをレイヤーの後ろの方に入れておき、このイメージビューの画像を差し替えるってことです。Fireworksで作った画像とはほぼほぼ透明に近い感じでテクスチャを入れたものです。Fireworksじゃなくても画像作成、加工ソフトならだいたい何でも対応できると思います。無料のものならGIMPとか有名ですよね。

 

そんな感じで、アプリ自体はほぼほぼ完成なので、あとは、アプリアイコンや起動時の画像を作成して、Appleに申請するだけかな!あと、App Storeに乗せる説明文や画像も必要か。やっと完成まで秒読みのところまで来たって感じです!初アプリ!

 

アプリ開発『WeightControl』vol.29

NSUserDefaultsを使っての体重管理ですが、前回までに値に体重、キーに年月日という設定で保存できたので、これをグラフ描画のための要素として使うための操作をしたいと思います。

 

NSUserDefaultsに登録するというのは体重管理タブでの動作であって、グラフ描画はグラフタブで行います。つまり、Tabbed Applicationなので、登録した体重を別のタブで取得してグラフ描画の要素に使うということです。

 

異なるタブ間での値の受け渡しについては『よくわかるiPhoneアプリ開発の教科書』でとてもわかりやすく解説がありました。てか、この書籍は本当にわかりやすくて初心者にはかなり重宝すると思います。

今はiOSXcodeのバージョンアップに伴って、最新版(2014年1月時点)のものAmazonで取り扱い開始されているようです。

 

てことで、AppDelegateクラスにプロパティを作って、AppDelegateクラス経由で体重登録タブからグラフタブに体重と日付のデータを受渡しています。

 

あとは、グラフタブを構成しているSecondViewControllerクラスでは、グラフ描画のオープンソースCore Plotを使ってグラフの骨組みが既に出来上がっているので、それに体重と日付のデータを組み込んで、グラフは完成です!!

 

アプリ開発『WeightControl』vol.28

今日からCore Dataをきっぱり諦めて、NSUserDefaultsを使って体重管理アプリの開発を再開させています。NSUserDefaultsの登録、更新、読み込み等の使い方はいろんなサイトや書籍(例えばこことか)で解説されているのでポピュラーかと思います。

 

keyを"2013/12/31"とかの形式で設定するようにして、実際には"self.textField.text"みたいな感じで日付ピッカーで選択してテキストフィールドに表示させた年月日をそのままkeyとして使うようにしました。それで、ifや else if などの条件分岐を使ってNSUserDefaultsに日付別で体重を登録していくようにしました!

 

ちょっとこの方法であれば結構先に進めるような気がしてきました!なんだか思いっきり初心者くさいやり方な気もしますが、実際初心者みたいなものなので仕方ありません。今回はこれで良しとします!