質問: こんにちは!僕は今年で高1になるものです。 プログラミングの勉強はSwiftが初めてで、iPhoneのアプリを自力で作れるようになることが目的で独学で勉強を始めました。 今まで読んだ(昨日でようやく全て読み終えた)本。⤵︎ 絶対に挫折しないiPhoneアプリ開発「超」入門 プロを目指すSwift基本文法と応用 詳解Swift改訂版 本気で始めるiPhoneアプリ作り Swiftで始めるUI設計&プログラミング わからない部分はteratailなどのネットの情報で学習を進めました。以上の本を読み終えてswiftの基本的な文法とアプリ開発の流れは掴めたので、さっそくアプリを作ろうと思ったのですがいざアイデアを出して作り始めようとすると、どうしたらいいのかわかりません。参考書を読んできてアプリ開発についていろいろ分かってきた気がしたのですが、無力感が半端ないです(笑)。 今、Xcodeでカウントダウン機能を実装したいと思っているのですが皆さんはどうやってやりたいと思った機能の実装方法を調べているのでしょうか? おすすめのサイトや調べ方を知っている方是非教えてください! またアプリ開発の知識に必要そうな本は手当たりしだい読んできました。ここからどうしたらアプリ開発の技術を向上する事ができるのでしょうか?ヒントを頂けると嬉しいです! 補足 いろんな方の意見を聞きたいのでベストアンサーを選ぶのが少し遅くなってしまうかもしれません。
回答: カウントダウンをやってみたいわけですね。 まずは、「カウントダウン」がどういう動きをするのか、実際に紙と鉛筆を使って書き出してみましょう。頭のなかで色々考えてもいいのですが、紙に書いたほうが問題点がはっきりとしてきます。 書き出しは文字でもいいですし絵でもいいです。どうプログラムするかは少し置いておいて、具体的なアプリの姿をイメージするわけです。 次に、書きだしたものを、機能的に分解していきます。ここは経験と慣れが必要になって来るので場数を踏んでいくしか無いかもしれませんが、画面処理と機能を別けて考えたほうがいいです。カウントダウンだと画面にはカウントダウンの数値表示とスタート・ストップのボタンなどなどあると思いますが、実際のカウントダウンの処理とは切り離すようにします。切り離すというのは、例えばボタンをクリックした時に飛んで来るイベント処理の中にカウントダウンの処理そのものを埋め込まないようにするということです。せめてカウントダウン処理のルーチンを呼び出すようにして、処理の詳細はルーチン側に記述するということです。クラスオブジェクトにすればもっといいですね。 これは、画面と密な結合をしてしまうと後々拡張するときや、一部を別のプログラムに流用する場合に難しくなるのと、プログラムの見通しが悪くなるためです。個々の機能はできるだけシンプルになるように心がけます。 サイトの調べ方ですが、具体的に何に困っているとかがはっきりしないと探すのも大変です。(例えば、画面を横にスライドさせて画面切り替えするには?とか) 通常は、このteratailやQiitaまたはサンプルプログラムを探すとかですかね。当然Googleで色々打ち込んで検索もします。英語サイトの方が情報が多かったりするので、英語での検索もよくやります。(文章ではなくキーワードを打ち込んで後は翻訳サイトでざっと翻訳してという感じです) なお、他人に自作アプリを作って貰う場合、画面のデザインが結構重要になります。当然カウントダウンの機能は十分に動作する上での話です。何か不自然な入力や表示になっているとか、ボタンや数字の表示が微妙にずれているとか、そういうのを目にすると機能は問題ないが使いたくなくなってしまいます。