kb84tkhrのブログ

何を書こうか考え中です

「Intro to App Development with Swift」

iBookに「Intro to App Development with Swift」という本があります
日本語版は「Swiftによるアプリケーション開発:入門編」です

Appleが自ら書いたSwiftによるiOSアプリ開発の入門書です
まったくプログラミングしたことのない中学生あたりがターゲットだと思われます

が、ただのプログラミング入門ではありません
やってることは簡単だけど教えようとしていることはけっこうまじめ

各章についてる「アプリ開発日誌」っていうコーナーを読むと
アプリ開発者の育成に対する本気度を感じます
製品をどうやって売ろうか、と思って考える範囲がそこまで広いことに驚き

日本語版も出たことだし無料ですのですぐ見てみることができます
ただし要Mac・要Xcode

さらに下の年齢層にはiPadアプリのSwift Playgroundがいいかも
こちらも日本語になりました
娘といっしょにちょっとやってみましたがなかなか食いつきがいいです
コードはやっぱり英語なんでちょっと親のサポートが必要な感じ
ところどころ関数名を入力するところがあって特に

#下の年齢層から始められるというだけで、上の年齢層にはつまらないと
#いうことはないかと

まじめ・本気を感じるなーってあたりのメモです
英語の方を読んでるので日本語版とは用語が合わないかも

内容 アプリ開発日誌
はじめに
  • テクノロジーは言語を持ち、それはコードと呼ばれる
  • コーディングは欠くことのできないスキルであり、創造的に問題を解決するのに役立つ
  • 誰にでも世界を変える何かを作る機会がある
  • アプリ開発日誌を書こう
  • この本を読み終わる頃にはあなたの作りたいアプリのプロトタイプができているはず
Lesson 1 Playground Basics
  • 今使っているアプリについて、どうしてそれを使っているのか考えてみよう
Lesson 2 Naming and Identifiers
  • プログラマーは問題を解決するために使える道具はなんでも使う
  • 定数
  • 上手に名前をつけることが大事
  • こんなアプリがあったらいいな、というリストを作ってみよう
  • 馬鹿げたアイデアでも書いておこう
  • 何度も見直そう
Lesson 3 Strings  
  • あなたが作ったアプリを使うのは誰?
  • App Storeを見て、どんな人向けのアプリなのか考えてみよう
Lesson 4 Hello, World!
  • 言語を学ぶときは世界にあいさつするのが伝統の儀式
  • ログはプログラムの動作を記録するもの
  • 「コンソール」アプリでほかのアプリが出力しているログを見てみよう
  • よいUXにはよいUIが必要
  • あなたの好きなアプリのUIについて考えてみよう
Lesson 5 First App
  • iOSアプリを作ってみる
  • Lesson 2でつくったリストを見直してみよう
  • どんな目的で、どんな問題を解決する?
  • アプリはInnovativeでDisruptiveでないといけない
Lesson 6 Functions
  • 関数はプログラムを形作るブロック
  • 複雑なことを単純に参照できるようにすることを抽象化という
  • プログラマーは同じことを繰り返し書かない
  • プログラマーは仕事のリストを短い複数のリストに分割する
  • 意味がある最小のかたまりを考える
  • 関数が何をするかわかっていれば、どうやってそれを行うかは知らなくてもよくなる
  • 共通の仕事を関数にしておけば、関数を修正するだけですべての呼び出しに反映される
  • アプリ宣言を書いてみよう
  • 私のアプリは○○します、なぜなら○○だからです
Lesson 7 Boogiebot
  • ある目的を果たすために誰かが作ってくれた関数の集まりをAPIという
  • 実行するステップを定めたものをアルゴリズムという
  • iPhoneiPadにはいろんな機能があるから、創造的な使い方を考えよう
  • Apple Developerのウェブサイトで調べてみよう
Lesson 8 Constants and Variables
  • 変数
  • 名前には、値が変わらないものと変わるものがある
  • 値が変わらないものは定数にしておけば安全
  • 今度は、アプリの機能を考えつくだけ挙げてみよう
  • 変なアイデアだと思っても全部書いておこう
Lesson 9 Types
  • 型をうまくつかうとプログラムの読み書きが容易になる
  • App Storeで似たアプリを探してみよう
  • 似たアプリのうちよいものを観察したり、レビューを読んだりしてヒントを探そう
Lesson 10 Parameters and Results
  • 複雑さを隠せることが関数のひとつの利点
  • Swiftでは、関数の名前はセンテンスになるようにつけることになっている
  • Human Interface Guidelineを読んで、アプリのUIについて考えてみよう
  • Keep it simple.
  • Be consistent.
Lesson 11 Making Decisions
  • if(やっと!)
  • 複雑な条件は関数にして名前をつけると理解しやすくなる
  • 第一印象は大事
  • どんなにすばらしいアプリも、アイコンがダサいとダウンロードしてもらえない
  • 起動したらログイン画面など出さずに即やりたいことができるように
  • はじめてのユーザにはチュートリアルでアプリのクールなところを見せる
Lesson 12 Instances, Methods and Properties
  • 型がメソッドとプロパティをまとめて複雑さを分割してくれる
  • ドキュメントを探して理解することはもっとも重要な技術のひとつ
  • あなたが考えたアプリの画面をいくつかノートに描いてみよう
  • 最初の画面は?どんなボタンが見えている?アイコンは?
  • やりたいことにたどりつくまでに何タップ必要?
  • 説明なしで機能を理解してもらうには?
Lesson 13 QuestionBot
  • できかけのアプリにコードを追加する形で、質問に答えるBotを作る
  • チームで開発していると思ってやってみよう
  • コメントやコードの構造、プロジェクトの構成が重要だということがわかるだろう
  • 関数が必要最小限のインタフェースを持ち、ひとつの機能だけを実行するようになっているのがよい
  • 関数をPlaygroundで試して、うまくいってからプロジェクトに追加してみよう
  • あなたのアプリを使うユーザをさらに具体化して考えてみよう
  • 何をしている人?何歳くらい?どうしてそのアプリを使っている?絵と文字、どちらが好き?
Lesson 14 Arrays and Loops
  • 配列にもミュータブルとイミュータブルがある
  • あなたのユーザに合うひとを探してプロトタイプを人に見せてみよう
  • 画面をカードに描き直して、アプリを使う代わりにカードをめくってもらう
  • フィードバックをもらって記録しよう
Lesson 15 Defining Structures
  • 必要なデータに合った構造を設計すれば、アプリを作るための部品が手に入る
  • アプリが扱う型の集まりをモデルという
  • Structを使ってデータに合った新しい型を自分で定義しよう
  • Structにもミュータブルとイミュータブルがある
  • あなたのアプリは開発する価値があるだろうか
  • 価値ありと思ったらフィードバックをもとに改善を考えよう
  • 残念ながら価値なしと思ったらアイデアリストに戻ろう
Lesson 16 Questionbot 2
  • Model, View, Controller
  • 本物のデバイス上でプロトタイプを作ろう
  • Keynoteを使えばモックアップが作れる
  • ユーザの使い方を観察して改善を繰り返そう
  • 指で隠れるとか、ボタンが小さすぎるとか
Lesson 17 Actions and Outlets
  • Color Pickerのアプリを一から作る
  • Interface Builderを使ってUIを作りコードと結びつける
  • UIを改善する
  • 今度は、ユーザに質問するのではなくユーザを観察してみよう
  • どこで混乱して、どこを楽しんでいる?
Lesson 18 Adaptive User Interface
  • デザインして、フィードバックをもらい、改善するというサイクルを繰り返す
Lesson 19 Enumerations and Switch
  • Enumをうまく使えばコードは読みやすく書きやすくなる
  • iOSには障害を持つひとのために多くのアクセシビリティ機能を持つ
  • より多くのユーザに使ってもらえるよう、これらの機能をうまく組み込もう
Lesson 20 Final Project
  • 最後のプロジェクト
  • 完成が近づいたら、アプリのアイコンとタイトルを考えよう
  • 日誌を読み返し、キーワードやビジュアルを手がかりにしよう
  • UIと同じように、アイコンやタイトルもほかの人に見てもらってフィードバック・改善を繰り返そう
Lesson 21 What's Next?
  • どんなアプリなら今のスキルで作れるだろうか?
  • この本を見ないで同じアプリを作ってみよう
  • これまでに作ったアプリを改造してみよう
  • すぐに始めて、アプリを作り続けよう
  • 学び続けよう