iPhoneアプリ開発学校に通う生徒のおおまかな学習日報

Objective-C初心者。iPhoneアプリ開発学校に通う落ちこぼれです。授業の内容を記録しているのですが時間の都合でおおまかに書いてます。投稿内容は参考にしちゃだめです。

【火曜日】卒業制作

睡眠時間6時間。
今日も卒業制作を作ります。
今日の予定は設計書作成・設計書レビューです。

そういえば先日、目標を作って「アプリを1本作ってリリースする」と決めたのだ。
なので頑張りましょう。


以下、個人的なちょっと復習。
■ARCのメモリ管理について
プロパティでやっていればretainがstrongにassignがweekになる。
らしい。
よくわかってませんが、いつかわかる日がくるでしょう。

いま、設計書を作っているんだけど、時間がすぎるのが早い。
というか、ついつい別のことをしてしまう… イカンイカン。
そして、設計書を書いていると「あれ?こんな機能もあったの?」と、意外と機能が多いことに気づいて焦る。

でもって、設計書を作っているうちに、あれもこれもと機能が欲しくなってきた。
シェイク動作を入れてみたくなったり、スプラッシュ画面を作ってBGMを流したくなったり。
ただでさえ時間がないのにできるんだろうか?
いや、ここはやってみるべきだと思う。
いやいや、やめたほうが…

【月曜日】卒業制作

睡眠時間6時間くらい。
遅刻した。

今日も卒業制作を作ります。
スケジュールを立ててみました。
あと、企画書などの内容の詳細も下に書いておきます。
改行が読みにくくてすんませんが。

■スケジュール
18日(月)企画書作成
19日(火)設計書作成・設計書レビュー
20日(水)コーディング
21日(木)コーディング
22日(金)コーディング
23日(土)---
24日(日)---
25日(月)テスト
26日(火)発表会準備
27日(水)---(休む予定)
28日(木)発表会


こんなタイトなスケジュールで終わるんかいなー!


■企画書作成(PowerPointの形式で(OpenOfficeのプレゼンテーション用ソフトImpress))
・目的と概要---------どのようなアプリを提供するのか?何を目的にアプリを提供するのか?
・ターゲット層--------どのような人に向けてアプリを提供するのか?(年齢層、性別、人物像)
・アプリの説明--------機能概要(〜ができる) 機能要件(それぞれの機能を構成する要件)
・画面イメージ--------きれいな物は必要ない、ペーパーモックで作成
・競合アプリ参考アプリ--似たアプリの紹介、勝っている点など

■設計書作成(OpenOfficeのWriterで作成)
・画面遷移(画面がどう移動するか)
・ロジック(クイズであれば出題の仕方など、ゲームであれば的が登場する条件など)
・画面定義(時間がかかりそうであれば、手書きの別紙参照でかまいません)
・DBテーブル定義
  
■設計書のレビュー
・先生に説明をする

■テスト
・テスト項目書の作成
・テストの実施(自分で)、テストの実施(別の人で)
・実機によるテスト

■発表会準備
・企画書から発表用資料の作成、スクリーンショット貼付けなど


ということで、今日中に企画書を作らねばならないため、少し残勉して企画書を作りました。

【金曜日】JSONと卒業制作

睡眠時間9時間。最強の予感。

先生から連絡事項。
卒業制作のアプリは作ったら必ずテストをすること。
教室は通常16時まで解放してるが、卒業制作の期間は17時まで解放してくれるそうです。
ただ、退出の手続きと学習日報は早めに終わらせておくこと。

生徒さんよりいくつか質問があった。

・「storyboardがイマイチわからない」
storyboardはGUIの制作を省略できる。が、謎のバグが起きることがある。
storyboardにはstoryboardなりの慣れが必要なので、できなかった場合はコードで書くのもありらしい。
たぶんそんな内容を話していたと思う。
※先生の話が早いので(というか、メモをとるために話しているわけではないので早くて当たり前です)すべてメモできなかった

・「卒業後に先生への質問は可能か」
暇な場合はできるけど、そうでない場合や次の授業が始まってしまったらむずかしい。
が、受講生用の掲示板に書けば返事がくるかも。


もう授業は無いのかと思ったら昨日の「JSONで電気予報アプリを作り直す」の課題の解説が残ってた。

NSJSONSerializationを使うとCSVファイルをカンマや改行で分割したりする必要がなく、NSArrayやNSDictionaryの形式で得ることができるらしい。

HTTP通信の課題の時に東京電力電気使用量取得すると
↓こんなかんじだった

9:55,3517,4470

↓が、JSONだとこんなかんじ

{
  "capacity_updated": "2012-11-14 23:30:00", 
  "forecast_peak_usage": 3900, 
  "month": 11, 
  "forecast_peak_period": 17, 
  "capacity_peak_period": 17, 
  "year": 2013, 
  "saving": false, 
  "day": 15, 
  "capacity": 4397, 
  "hour": 8, 
  "forecast_peak_updated": "2012-11-14 23:30:00", 
  "forecast": 0, 
  "usage_updated": "2013-11-15 00:05:08", 
  "entryfor": "2013-11-14 23:00:00", 
  "usage": 3498
}

Dynamic ProtoTypeよりStatic Cellを使うと便利。
Dynamic ProtoTypeはテーブルビューで使える機能。
Static Cellはテーブルビューコントローラーで使える機能。
らしい。らしい。らしい。らしい。

で、卒業制作に向けて各自よーい、どん。
やることはおおまかに言うと以下のとおり。

・アプリを考える
・企画書を作る ←イマココ
・設計書を作る
・先生にレビューする
・アプリを作る
・アプリのテスト

アプリを考えてからそのアプリを作ることが可能かどうかを先生に相談しに行った。
私のアプリの内容を聞いた先生が笑ってくれたのでホッとした。

楽しくなってきたぞ。
来週もがんばりましょう。

【木曜日】Twitterクライアント

睡眠時間6時間。
寝坊しました。

今日はTwitterクライアントを作る授業で、最後の授業になります。

教科書に記載されたコードを打つ。
Accounts.frameworkとSocial.frameworkが必要です。

そして、午後の授業開始。

▼まずはじめにシミュレーターのTwitterの設定をやっとく。
f:id:jaam:20131114144844p:plain


テーブルの中の文字が全く出てこなかったりと苦戦しつつ、できました。

▼できた
f:id:jaam:20131114144900p:plain


おっぱい…
先生に教わってる時に出てきたので少し気まずかった。


▼ツールバーの右のボタンをタップするとつぶやき送信画面が出てくる
f:id:jaam:20131114144850p:plain


完成したと思ったら、更新ボタンをタップしてもうまく更新されなかった。
隣人さんに少し教えてもらって解決。

これは最低限の機能しか付いてないので、URLのリンクをタップしても反応しない。
可能にするにはコードを追加しないといけないんだろうなぁ。
リツイートとかリプライもね。

授業終了。
これで全ての授業が終わりました。
明日からは卒業制作を個人個人で作ることになります。

/* ------------------------------------------- */

そして、放課後。
さっきやったTwitterクライアントのコードはStoryboardを使わないやり方でやったので今度は使うやり方でやってみるの巻。


▼ここ注意
dataSourceとdelegateはTableViewを右クリックしてViewControllerにひっぱること
f:id:jaam:20131114161807p:plain


▼ボタンをグーっとひっぱってこうやってね tagは0で
f:id:jaam:20131114161812p:plain


▼こっちもグーっとひっぱってね tagは1で
f:id:jaam:20131114161816p:plain


そんなこんなで完成。
Storyboardを使った画面の作り方とかもう忘れてる自分がいました。


おつかれさまでした。

以下、要復習。
・時間がなかったのでできなかったJSONで電気予報アプリを作り直す課題をやる

【水曜日】ブロック崩し

睡眠時間8時間。

昨日は休校日でした。
今日はブロック崩しのゲームを作る。
素材は用意されてます。
バーをタッチすると左右に動くので落ちてくるボールを跳ね返してブロックを壊していくゲーム。
教科書約6ページ分のコードを打つ。長いよ。
Graphics.hとGraphics.mは前回やったアクションゲームのをそのまま使う。
※StoryboardのViewを配置してそこのクラスにBlockGameVIewを設定すること


午後の授業開始。

▼でけました
f:id:jaam:20131113151104p:plain

▼ゲーム画面はこんなかんじ
f:id:jaam:20131113151111p:plain

書いてるコードの意味がわけわかめ〜。

おっと、友達と話していたら1カ所間違えがあったことに気づかされた。
▼ここにチェックを入れてステータスバー(一番上の電波とか時間が書いてあるバー)を隠したほうがいいらしい
f:id:jaam:20131113151118p:plain

▼ほら、隠れたでしょ
f:id:jaam:20131113151125p:plain

終わった人は、ブロックを固くするロジックを追加することに。
1行追加するだけでブロックが固くなる(1回当たっただけでは崩れない)。
追加場所を隣人さんに教えてもらい完成。
なぜそこに追加するのかを隣人さんに教えてもらったのですがハテナでした。
ごめんなさい。

余った時間は卒業制作アプリの時間になった。
ので、競合アプリをDLしていじりました。

明日はTwitterクライアントの勉強です。
待ってました!

【月曜日】キャリアコンサルティングと卒業制作

睡眠時間5.5時間。

午前中の約30分だけキャリアコンサルティングの時間でした。
お仕事紹介の面談みたいなことをしました。

それ以外の時間は卒業制作に向けて制作するアプリについて調査した。
競合アプリのUIなどを調べたり画面遷移などを考えました。

おわり。
あっという間だった。
明日は休校日。ラクすぎ。

【金曜日】アクションゲーム

睡眠時間約6時間。

今日はゲームを作るらしい。
イェーイ!
とは言ってられない。
だって難しそうなのはわかってるから。
画像などの素材は用意されてるけどコードが難しそう。

・キャラクターをタッチダウンで上昇
・キャラクターをタッチアップで下降する
・隕石の出現はmeteoAppear変数で管理されていてmeteoAppearが0になった場合に出現
わけわかめ!

毎度、よくわかってませんが、たぶんまだわかってなくていいんだと思う。

まずGraphics.mから書く。
そうしないとエラーが多くなるらしい。

ちょっとここでアプリアイコンのファイル名と各デバイスのおさらい
Icon.png サイズ57×57 iPhone3GS
Icon@2x.png サイズ114×114 iPhone4/4S/5
Icon-72.png サイズ72×72 iPad/iPad2/iPad mini
Icon-72@2x.png サイズ144×144 iPad 第3世代/第4世代

そして、教科書に記載されたとても長〜いコードを打つ。


午後の授業開始。
ひたすら打つ。

▼これをこうして
f:id:jaam:20131108151957p:plain


▼エラーだわっしょい
f:id:jaam:20131108152003p:plain

教科書のとおりに書いてるだけなのに間違っている…
教科書と見比べてエラーを2個まで減らしたけどなかなか間違いが見つけられず、先生に聞いたり、隣人に聞いたりでなんとかできました。

▼できた
f:id:jaam:20131108152009p:plain

▼ゲーム中画面
f:id:jaam:20131108152015p:plain


ジェットの噴射を調整して隕石を避けるゲームなんだけど、ソースを見ても何をどうしているのかがわからない。

そして本日の授業終了。
ああああ。