Code4Startup

Code4StartUp ~ UberEatsを作ろう ~ ついに完了!

[ ][1] Code4Startup Task26では、ドライバー側マップでドライバーの移動ロケーションを追加し、カスタマー側マップにも追加します。 そして、シミュレータを二つ立ち上げて、動きを見ることができますよと言うテクニック。 最後にTask27でdanielgindiのチャートコントロールを使ってグラフを表示します。 https://github.com/danielgindi/Charts と言うわけで完了!長かった・・・ ただ、完成まではしないのですね・・・ 例えば、ドライバーが配達完了すると、ステータスが変わる、と言うところは作りますが、その時のドライバー画面は白いままとか。 ともあれ、この画像でおめでとうと言われました! https://www.google.com/search?q=congratulations!+gif&tbm=isch&tbs=rimg:Cf_126g8pSGmDIjj2cw58GhEDRb1Tm-QQfezqphKGfD1O0NL-e3qT_1YKO7LZvVAYaur8hA3bBucnHSIqfOWhf0o2EKyoSCfZzDnwaEQNFEaLGpRKdOq-YKhIJvVOb5BB97OoROM0rrFOchCUqEgmmEoZ8PU7Q0hGkQsPwogAEjSoSCf57epP9go7sEcYO1TRi5KJ5KhIJtm9UBhq6vyERQUG6cqDuGNMqEgkDdsG5ycdIihE6TOBfMSUADCoSCZ85aF_1SjYQrEe5Ue_1GH1SA_1&tbo=u&sa=X&ved=2ahUKEwiOhtjjxdXfAhXXAIgKHaCBBUsQ9C96BAgBEBs&biw=1765&bih=1034&dpr=2#imgrc=__bqDylIaYNUMM:

Code4StartUp ~ UberEatsを作ろう ~ ドライバーサイドアプリ

[][1] Code4Startup ここまでは、カスタマーサイドのアプリ。 Task24は、ドライバーサイドのアプリ。 このスピード感で画面を追加していける、というのがSwiftの強みだと思う。 そして、この段階で初めてCusotmerとDriverでディレクトリを分けていけるのもよい。 ということで、Task24がViewControllerで画面遷移のあたり。 Task25で、API部分で、注文のピックアップのあたり。 悩みながら、進めます。

Code4StartUp ~ UberEatsを作ろう ~ 地図上の経路描画

Code4Startup Task23は、決済部分から、お店から配達先までの経路描画など、ある意味、講座のクライマックス。 経路は、import Mapkit しなければならないとすると、他の方式で開発する場合は、またちょっと苦労するということでしょうか。 画面作成の観点で、Swift最強だな、というのはひしひしと感じるわけですが、Android版も開発するとなった場合に、まるっきり別物の開発になってしまう、というのはやはり辛いなとも感じています。

Code4StartUp ~ UberEatsを作ろう ~ 地図

Code4Startup 年末なので、頑張ります。Task22まで来ました。 トレイ(ショッピングカート)画面で、注文者の住所を入力するところで、地図と連携。 とりあえず、キーワドとしては、 MKMapView CoreLocation.Framework info.plistの Privacy – Location When In Use Privacy – Location Always CLLocationManager というあたり。 次のTask23は決済部分で、Task24がお待ちかねドライバー機能、全27タスクの終わりが近づいてきました。

Code4StartUp ~ UberEatsを作ろう ~ 詳細画面からショッピングカート

Code4Startup リスト画面から詳細画面呼び出し、そこからショッピングカート(この講座ではTrayという言葉)への追加。 途中のミニ講座は、「pyramid if」。 pyramid ifで調べても何も出てこないので、この講座独特の言葉でしょうか。しかし、「Pyramid of doom」という言葉はあるようです。 https://en.wikipedia.org/wiki/Pyramid_of_doom_(programming) 簡単に言えば、過剰な入れ子(ネスト)構造でしょうか。そこでなぜ「doom」なのかはやはり不明。 そして、ifの多重入れ子回避の対応として、Swiftでは「guard」があるよ、というお話です。 そして、この「ガード節による入れ子条件記述の置き換え」という方法は、ファウラー「リファクタリング プログラミングの体質改善テクニック」からきているのですか・・・。大昔に読んだ・・・   リファクタリング―プログラムの体質改善テクニック (Object Technology Series)posted with カエレバ マーチン ファウラー ピアソンエデュケーション 2000-05 Amazon 楽天市場 7net

Code4StartUp ~ UberEatsを作ろう ~ リストの実装

Code4Startup Task19はレストランリストの実装。 最初は、仮実装でリスト表示の枠組みを作っておいて、ここで、API連携により実際のデータを表示させます。 合わせて、サーチバーの実装でデータのフィルタリングを行い、Activity Indivatorという、Windowsで言えば砂時計を表示させます。 とりあえず、この辺は淡々と進めます。

Code4StartUp ~ UberEatsを作ろう ~ API呼び出し

Code4Startup 先に作ったFacebook連携用APIの呼び出し。 ここでログイン・ログアウトの機構を一気に作るので、ここをやっておかないとドライバー用アプリが進められなくなる。 が、とりあえず、一旦は一通りビデオを見てみることにする。 この先は、その他API呼び出しの部分なので、ある意味飛ばしても良いはず。 一つへーと思ったのは、API呼び出しで、httpだと怒られる訳ですが、info.plistで、App Transport Security Settingsの設定を追加することで接続できるようになる。 例えば、この辺の情報ですね。 https://qiita.com/uhooi/items/68939999c2c31e5f5557

Code4StartUp ~ UberEatsを作ろう ~ Facebook接続

Code4Startup Task17ではFacebookへの接続。 色々なものをインストールしますが、それによりこんなに簡単にできるのだ、ということが感じられます。 ただ、やればできそうなので、一旦ビデオだけ見てスルーしてます。 そして、Task18に入ると、Asynchronousの世界の講義が始まりました。そして、Closureの解説。 Appleのドキュメントも読みましょうと。 https://docs.swift.org/swift-book/LanguageGuide/Closures.html

Code4StartUp ~ UberEatsを作ろう ~ デザインなど

Code4Startup Task 16終了。 最後は、デザインの統一等を行いますが。 UIApplication.shared.statusBarStyle = .lightContent は、Setter for ‘statusBarStyle’ was deprecated in iOS 9.0: Use -[UIViewController preferredStatusBarStyle] という警告が出ます。しかし、 UIApplication.shared.preferredStatusBarStyle = .lightContent はダメです。これはこのままにしておきます。 また、 UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAtrributeName: UIColor.white] はエラーとなり、コメント欄では、[NSAttributedStringKey.foregroundColor: UIColor.white] にしたら良いというコメントがあるのですが、正しくは、 [NSAttributedString.Key.foregroundColor: UIColor.white]でした。 また、色選択の支援Webサービスが紹介されています。 http://uicolor.xyz/#/hex-to-ui Code4Startup

Code4StartUp ~ UberEatsを作ろう ~ cocoapods

Code4Startup さて、クレジットカード情報入力画面を作るにあたっては、cocoapodsなるものを導入するようです。 ターミナルで、sudo gem install cocoapodsを叩きます。 ビデオでは1 gem installedであっさり終わっていましたが、私の環境では結構な量のインストールログが流れて、28 gem installed。そもそも、ターミナルを立ち上げるのさえ初めてというまっさら環境ですから、そんな感じなのでしょうか。 次にpod initによって、Podfileというファイルができますが、それをVisual Studio Codeで開いて保存したらファイル名が「Pod file」になっていた。まあまあの驚き(何かの操作ミスかとは思いますが、そんなミスする??)。 さらに、pod installすると、ビデオではすぐにStripeのインストールが始まっていますが、私の環境では、Analyzing dependenciesから始まって、結構な量の何かをインストールし始めて、ちょっと不安になりましたが、無事完了。 そして、これをインストールすることにより、Viewにクラスを指定するだけで、クレジットカード番号入力欄が勝手にでき上がるというのはセンス良い! という訳で、この辺も飛ばさずにやっておくべきですね。 Code4Startup