Stanford CS193P Winter 2017コース:Swiftを使用したiOS 10アプリ開発



スタンフォード大学、米国-コンピューターサイエンス(コンピューターサイエンス)の分野で世界最高の1つ。 彼は自分のコースをsharesしみなく共有し、最も人気があり成功しているコースの1つは、Paul Hagerty教授が教えているCS193P iOSアプリケーション開発コースです。 このコースは2010年から毎年教えられています。 現時点では、CS193Pコース「Developing iOS 10 Apps with Swift」が関連しており、2017年冬-「Swiftを使用したiOS 10アプリケーションの開発」であり、 iTunes Uの 17の講義と5つのタスクはすべて投稿済みです(ただし、 Youtubeで見ることができます) 。
新しいコースでは、教授がオブジェクト指向プログラミングから、数学関数に類似したAPIを備えた多くの不変オブジェクトを使用した関数型プログラミングへとコース全体を少し変えたことが明確にわかります。
もちろん、iOSは関数型プログラミングの考え方に基づいてまったく設計されていません。 しかし、 Swiftを発明した人々は、関数型プログラミングのアイデアを「頭の中で」持っていました。 (少なくともモデルの一部で)iOSアプリケーションを開発するとき、関数型プログラミングの多くの要素を使用できます。

これはiOSプログラミングの新たなフロンティアです。なぜなら、10年の間、人々は主にiOSプログラミングで参照型オブジェクトのみを使用し、オブジェクト指向プログラミングの概念に言及してきたからです。 しかし、Swiftでstructsおよびenums enumsを使用してプログラミングする場合、特にprotocolsGenericsプロトコルメカニズムを接続する場合は、実際の関数型プログラミングを扱うことができます。

そして新しいコースの講義1タスク2から始まって、重点は非常に異なっています。 そもそも、 value types 、およびreference typesについて-受け渡しのみ、 structs構造とenums 、およびクラスclassesについての詳細-受け渡しのみ。 Range<T>範囲と、どのような条件下でRange<T>Sequenceシーケンスになり、 for in構文を自分に適用できるかについて非常に詳しく説明します。

教授は、Swift 3の構文とXcode 8の機能の非常に詳細な説明から始めます。文字通り各文字について説明します。 さらに、クラスclassようにsubclassの作成を使用できないためpublic APIモデルのpublic APIから始まるstruct構造を使用してモデルを設計する方法、 struct構造で拡張可能な機能を実現する方法を示します。 ネストされたstruct構造とenum列挙の作成を示します。 非常に短いコードスニペットは、 Optionalのセマンティックコンテンツに基づいて、 Optionalを使用する場合と使用しない場合を説明しています。 Closureを含む、あらゆるタイプの値が関連付けられているenum列挙には、多くの注意が払われます。 willSet{}didSet {}オブザーバーやlazy遅延初期化などのプロパティが考慮されます。 したがって、SwiftでiOSアプリケーションを開発する初心者にとっては非常に便利ですが、初心者がプログラミングを習得することはできません。

このコースで提供されるタスクを完了すると、iOSオペレーティングシステムでのSwiftプログラミングの学習における特別なブレークスルーを達成できます。 それらは通常非常に興味深いものであり、あなたは間違いなくそれらの実装を楽しむでしょう。 ただし、 struct構造、 enum型列挙、 Optionalセマンティック理解、クロージャー、タプルなどの使用、およびiOS 10の高度な知識( View Controllerライフサイクル、マルチスレッド、 Scroll View備えたSwiftトリックの全範囲を知る必要がありますScroll ViewTable ViewCollection ViewCore DataDynamic Animationなど

3年間、このすばらしいコースを最後まで完了し、このコースのすべてのタスクを完了するのに役立つサイトがあります。 このプロジェクトの目的は、開発者としてあなたが専門家と自由にコミュニケーションを取り、WWDCで言われていることすべてを理解し、 Swift.orgでのSwift 4の作成を監視できるときに、かなり高いレベルのiOSプログラミングを行うことです。教材に永遠に「たむろ」しないでください。 CS193PコースCS193P高品質な独立プログラミングの後CS193Pトレーニングコースは必要ありません。

このサイトには、スタンフォードのコースを勉強するために必要なすべての資料が含まれています: 許可されていないロシア語の講義ノートデモ例ロシア語のタスク 、iOS 10およびSwift 3の タスクの ソリューションオプション
Xcode 8 Macタスクを完了するプロセスは非常にエキサイティングです。優れた情報サポート、結果はiPhoneおよびiPadシミュレーターまたは実際のデバイスに表示され、デバッグプロセスを視覚化します。

最も興味深いのは、 Xcode 8から、デバイスでデモを実行し、タスクを完了(または友人と共有)できることです( Developer Account開発者証明書を99ドル/年とする必要はありません)。 Xcode 7 、開発者に対するAppleのポリシーが変更されました。彼らは、若いプログラマーを引き付けてアプリケーションを開発しようとしています。

あなたが他の言語( JavaPythonC++ )の経験豊富なプログラマーであれば、経験が示すように、 Swift構文構造に対処するには2〜3週間で十分です(非常に短い入力期間です)。 そして、Stanfordコース「Developing iOS 10 Apps with Swift」へようこそ。タスクを完了してみてください。そのテキストはロシア語と英語でここに表示されます 。 最初の3つのタスクは、マルチスレッド、 Table Viewテーブル、 Core Dataデータベース、アニメーションのいずれにも関連していません。 これはSwiftMVCを知るための純粋なプラクティスです。 ここでは、数行のコードで計算された変数を使用してUserDefaultsのデータのストレージを管理し、クロージャとは何か、「キャプチャ」リストでweakと非unownedを使用して循環メモリリンクを「解除」する方法、 @escaping関数、タプルの操作方法など。 Githubにはジョブを解決する例があります。 したがって、Swiftプログラミングのすべてのスキルを試してみる価値があります。 さらに、ソリューションを既存のソリューションと比較できます。
割り当てには解決策があります。
タスク1 cs193p Winter 2017 Calculatorのソリューション。 必須およびオプションのアイテム。 Githubにあります。

タスク2 cs193p 2017年冬「スマート」電卓。 解決策。 必須およびオプションのアイテム。 Githubにあります。

タスク3 cs193p Winter 2017「グラフィック」電卓。 解決策。 必須項目。 Githubにあります。

タスク3 cs193p Winter 2017「グラフィック」電卓。 解決策。 追加アイテム。 Githubにあります。

タスク4. CS193P Winter2017。SmashtagMentions(Twitterクライアント)。 ソリューションは必須ポイント1〜7でGithubにあります。

タスク4. CS193P Winter2017。SmashtagMentions(Twitterクライアント)。 ソリューションは必須ポイント 8〜10です。Githubにあります。

タスク4. CS193P Winter2017。SmashtagMentions(Twitterクライアント)。 決定-追加ポイント1-5。 Githubにあります。

タスク4. CS193P Winter2017。SmashtagMentions(Twitterクライアント)。 ソリューションはオプションのポイント6です。UICollectionViewとセルの移動。 Githubにあります。

タスク4. CS193P Winter2017。SmashtagMentions(Twitterクライアント)。 解決策は、WaterFall型のセルの場所とレイアウト間の切り替えを含む追加のポイント6. UICollectionViewです。 コードはGithubにあります。

コース「iOS Application Development with Swift」のPSディスカッション資料は、Piazzaのプライベートフォーラムで開催されます。 そこで質問することができます。
登録するには、リンクをたどる必要があります。
piazza.com/moscow_physical_engineering_institute_bestkora.com/spring2017/mf141
プライベートコードmf141を入力します。

Source: https://habr.com/ru/post/J326342/


All Articles