2018

Code4StartUp ~ UberEatsを作ろう ~ Swift続行中

Code4Startup さて、Swiftでの開発、ViewController、segue等の基本的な概念を、あまり理解せずに進めているので、これで一人で作れるのかと言ったら微妙ですが、それでも色々繰り返していくうちに何となくは解ってくるようには思われます。 で、一番興味があるのは、ドライバー用の地図と連携する部分なので、途中で一旦そちらに飛んでみたのですが、いつの間にかMVCのグループ分けがされていたり、ソースを流用したりするところがあるので、やはりそれは無理があるようです。 ですので、ちょっと書くのは飛ばしながらでも一通りは見ていかないとダメかなということで、続行していきます。 そして書きながら、Android版は全く作り直しだよな、と、やはり悩みは続きます・・・ Code4Startup

Code4StartUp ~ UberEatsを作ろう ~ iMac購入して続行

Code4Startup iMac購入 一旦Xamarinを始めたわけですが、そして第一印象はさほど悪くもなかったのですが、結局iOS版を作成するためにはXcodeの入ったMacが必要になるということで、熟慮した結果(1日ほど)iMacを購入しました。 iMac MK462J/A 一体型 PC 27型 Retina 5K Late 2015 Core i5 6500 3.2GHz 24GB HDD1TB High Sierra 10.13 中古ですが全く中古感なし。それでいてメモリが標準8GBのところ24GBに増設されており、値段は標準新品より7万円位安い。 12インチMacBookの整備品も魅力はありましたが、使用中のThinkPad T430sも全然現役で使えることと、値段も上記中古品ならあまり変わらなくなってしまうということで、ちょっとだけ贅沢品を買いました。 快適そのものです。 swift開始 ということで、すぐさまXcodeをインストールし、と思ったらOSアップデートが必要と言われたのでアップデートし、環境を整えました。 ちなみに、エディタどうしようかと思い、Macのエディタを検索したらいまだにCotEditorとか上位に出てきて、ムムとなりましたが(以前Mac使ってた時にはCotEditor派でしたけど)、素直にAtomとVSCodeで悩んでVSCodeにしました。 始めてみると、やはりこのデザインツールは素晴らしい。ここまでサポートしてくれると、やる気の出方が違います。 とりあえず4レッスンやってみてのハマりポイントは二つ。 一つは、FoodTaskerMobile-Bridging-Header.hのファイルの場所。レッスンの中ではこれをLibディレクトリに移動するのですが、参照できませんというエラーになります。

これを参照できる場所に戻しても良いのですが、やった対応は、プロジェクトのBuild SettingsのObjective-C Bridging Headerの記述を削除すること。これで、このエラーは解消しました。

(2018/11/04) さすがにこれはダメ。後で、self.revealViewControllerというところの参照ができなくなります。 FoodTaskerMobile/Lib/FoodTaskerMobile-Bridging-Header.h とすることで正常動作になります。 もう一つは、画面遷移しても目的のページが表示されず、白いままになってしまうこと。これは、実はView Controllerのページが表示されていたのですが、なぜそうなるか。結論は、このコントローラに対しては、クラスSWRevealViewControllerを指定しなければならないのですが、それが漏れていたため。ビデオではちゃんと設定することになっているので、その部分で居眠りしていたかもしれません。 ということで、基本的な画面の作り方と、遷移の仕方は完了。 ついでに言うと、レッスンで使用しているアイコンはどこかで手に入れられるのか??謎。 Code4Startup


格納型XSS システムアーキテクト試験より

日曜日は、情報処理技術者試験。システムアーキテクト試験(SA)を受験してきました。 午前Ⅱの回答は即日公表され、80点でしたので、あとは午後次第。感触は良かったですが、さて、どうなることやら。 午前Ⅱの試験は勉強になるものが多いですが、今回受験中に知って気になったのが、「格納型XSS」という言葉。 IPAのサイトでも解説されていました。 https://www.ipa.go.jp/files/000024726.pdf こちらのサイトだと、「反射型」は攻撃者が自分で出力結果を利用し、「格納型」は第三者に出力結果を利用させる、という違いのように思われ、それならこのように分類することも納得できますが、このページの元となっている共通脆弱性タイプ一覧CWEの説明では、格納型もあくまでも第三者攻撃の手段と捉えているようです。 https://jvndb.jvn.jp/ja/cwe/CWE-79.html 他の様々なサイトを見ても、CWEの説明を引用して説明しているようです(そりゃそうだ)。 けど、そこで例として挙げられるURLにスクリプトを埋め込む等は、スクリプトを格納しているのとあまり意味合いは変わらなくないかなと、いまいち腑に落ちません。 当初反射型しかなくて、格納型が出てきたというなら、より無意識に被害者になるパターンが増えてきたという警鐘を鳴らす意味があると思いますが、どちらかというと格納型のパターンの方が昔から言われてきている方法だと思いますし。 今回下記の本を使用しました。正直この試験は、午後は対策しにくい(どちらかというと国語の問題)ので、午前Ⅱ対策を頑張るのが良いのかなと思います。(趣味の読み物としては午後試験の内容は最高) ALL IN ONE パーフェクトマスター システムアーキテクト 2018年度 (旧:合格テキスト・合格トレーニング) posted with カエレバ TAC情報処理講座 TAC出版 2018-03-25 Amazon 楽天市場 7net

XamarinのXAMLのデザイナー

Xamarinも楽ではないですなー Xamarinのチュートリアル https://docs.microsoft.com/ja-jp/xamarin/xamarin-forms/get-started/hello-xamarin-forms/quickstart?tabs=vswin で、最初のとっかかりは良かったのですが、構成がいまいちまとまりきっておらず、内容もビデオを見たりするのが多いのでちょっと進めにくい。 ということで、こちらをやってみようと思います。 かずきのXamarin.Forms入門 posted with カエレバ 大田 一希 2016-12-29 Amazon 楽天市場 7net (もうすこし画像何とかすればよいのにと思いますが。もったいない・・・) 16ページ StackLayout.Children 省略可能となっているが、そもそも廃止されてないかな?? デザイナが使えない 19ページ グリッドの画面を作ってみるというところで、ここはデザイナを使ってみるか、と思ったわけですが。 Xamarin.formsのデザイナは提供されていない? しかし、こんなページもあるので、ないことはないのでは?? https://docs.microsoft.com/ja-jp/visualstudio/designers/creating-a-ui-by-using-xaml-designer-in-visual-studio?view=vs-2017 Blendならもしかしたら、と思いさらに頑張って10GB空けてインストールしたが、そもそもXamarinのテンプレートがない。 https://marketplace.visualstudio.com/items?itemName=mohamedalinouira.XamarinFormsTemplates をインストールしてみるがダメ。 https://developercommunity.visualstudio.com/content/problem/272117/xamarin-designer-not-working.html を見てアルファ版のフィックスも入れてみたがダメ。 よくよく見てみると、デザイナの説明は、Xamarinの説明ではない! Windowsユニバーサルとか、デスクトップアプリケーションをxamlで作る場合はデザイナが使えるけど、xamarinのxamlではデザイナは使えないというお話でした。 プレビュー機能は提供されているので、こんな感じになります。

この画面でいうと、左側のxml記述に、一番左のツールボックスからドラッグアンドドロップはできます。 これで頑張るしかないのですね。 なお、Windowsユニバーサルの方で作成したXamlからコピペできるかなと思ったら、色々違うようでそれもできず。 厳しい!


とりあえずxamarinチュートリアル中(初心者の超入門編)

Code4Startup xamarinの選択 Code4StartupはここからSwiftによるモバイルアプリ開発に入ります。 とっかかりの部分の講座を見てみましたが、やはり画面デザインから入りますよね。 さて、Windows上にswift環境は用意したつもりだったのですが、Ubuntu上でSwiftが動くというのは、言語自体が動く、コンパイルが動くというだけの話のようです。 しかし、Swiftを使う目的は基本的にはiOSアプリを作るためであり(勝手な想像)、画面を作れないのであれば10割がた意味がないのではないかと思うのです。 というわけで、改めてiOSアプリをどう作るか考えます。Monacaも経験したので当然それは考えるのですが、やはりまだ馴染めきれない。 今後メジャー化していくと思われるFlutterもまだ早いような気がする。 結局以前考えたxamarinに戻ってしまいました。 やはり、慣れ親しんだ.NET(と言っても私の主戦場はVB.NETであり、C#はほぼ素人ですが、それでも)なら、他よりも生産性も高く進められるのではないかと思うのが大きな理由です。 Visual Studio 2017 さて、そう思った段階でインストールされていたVisual Studioは2015でした。 ただ、xamarinはインストールされていなかったので、入れようとしたら20GBくらい必要と言われます。 きついぜ!と思いつつ、一生懸命不要ファイルの掃除をして、インストールしました。我が家のネットワークは不安定なのか、一晩たっても終わっておらず、その日帰って確認できたという、丸一日作業になってしまいました。 ところが、いざ始めようとしたときに目についたのが、2017ならCommunity版でiOS リモート シミュレーターが使えるようになったという情報。iOSアプリを作りたいがためにこんなに悩んでいるのに、これを使わない手はないでしょう。ということでインストールし直し。 2015を完全に削除するためには、膨大な手間がかかるということで、MS謹製の削除ツールを使用して削除しました。これも、朝起きたら1段階目が終わったような状態で、再度ツールを実行する必要があり、結局丸一日。 インストール自体は順調に終わりましたが、なかなか手ごわいです。 xamarinチュートリアル では、何はともあれチュートリアルということで、 https://docs.microsoft.com/ja-jp/xamarin/xamarin-forms/get-started/hello-xamarin-forms/quickstart?tabs=vswin から始めてみます。 最初はエミュレータで画面表示するのが目的ということで、ソースはコピペ。 初回起動だけなのか、かなり時間がかかりましたが、Andoroid版画面はプレビューできました。 問題はiOSです。 結論としては、やはりMacOS機=XCode機が必要ということです。 Xamarin.iOS 開発のために Mac とペアリングする そうか、ということでちょっとがっかり。 ほぼほぼの開発はWindows機で行って、リリース時の手続き的なところだけMacがあればよいのかと勘違いしていました。 最近はMacを貸し出してくれるところもあるので、最後はそこを利用しようとしていたのですが、ちょっと方針が変わります。 けど、Mac買うならSwiftでいいじゃんとなりますしね・・・ (と言いつつMacBook欲しくなりつつある・・・ 買うなら、0.92kgが魅力のこれ) MacBook (12-inch/1.1GHz Dual Core Intel Core m3/256GB/8GB/802.11ac/USB-C/ローズゴールド) posted with カエレバ アップル 2016-04-20 Amazon 楽天市場 7net とりあえず、xamarin勉強を進めてみます。   Essential Xamarin ネイティブからクロスプラットフォームまで モバイル.

Code4StartUp ~ UberEatsを作ろう ~ Stripeの使用

Code4Startup 自作サービスの決済手段として何を使うか、PayPalは開発者にやさしいなと思っていましたが、Stripeも十分良さそうです。 [][1]トップメニューに「開発者」があり、このサービスの向き先が伺える ちなみに、日本のサービスで、申込・審査を行わずに利用できるサービスはあるでしょうか?? ちょっと違うんだよなーと思ってしまいます。 もちろん、そういうビジネスはそれでありなのですが、違うビジネスが展開されないのはなぜだろう、ということです。 そして、PayPal。 開発者向けサービスも充実しているし、無料でテストサイトでの決済を確認することもできるし、実際に運用する際の手数料も安いとは思いませんが(弱小サイトを前提とする場合)許容できるのではないかと思いますし、非常に使いやすいと思います。 [][2]PayPalも開発者にやさしい ただ、唯一最大の問題が、決済サービスをしようとするためにはpaypalの会員登録が必要ということ。 私のように一度登録してしまっている人としては、そういうものだと分かって使うのでよいのですが、paypalに縁のなかった人がいきなり支払いを行おうとしたらpaypal会員登録から始まってしまうというのは、ちょっとハードル高いのではないかと思われます。 それに対して、Stripe。 普通にクレジットカード情報を送信することにより(実際は端末にStripeのトークンが返されて、これをサービスに送信することで、サービスがそのトークンとサービスのAPIキーを紐づけて)決済されるので、違和感なしで決済完了できるということです。 なお、開発中のアプリでは、ユーザ認識にユーザトークンのやり取りをしているので、トークントークン言われて分からんわ、という感じになりそうですが(実際それを間違えて送信しているというコーディングミスをしたり)、冷静になれば特に問題はありません。 なお、開発者向けドキュメントの中でデモ機能が用意されていて、そこでダミーのカード情報を送信することによりStripeのトークンを取得できる(そして、それを使って開発サービスのテストができる)わけですが、講義の中で紹介されているURLは既に変わってしまっており、stripe docs→Payments→Stripe.js and Elements→Quickstart (Card Element Quickstart) https://stripe.com/docs/stripe-js/elements/quickstart から利用できるようになっています。 これは、別件のWordpressからの決済でも使ってみたいと思います。

Code4StartUp ~ UberEatsを作ろう ~ Chart APIなど

Code4Startup Task14までdone。 途中結構長い時間はまったのが、 Order.objects.filter・・・ とすればよいところを OrderSerializer(Order.objects.filter・・・ としてしまったために、発生したエラー。 他からのコピペで無意識についてしまったわけですが、これを探りながらの他のバグにも気づいたし、まあよいか。 Task14ではレポート画面と言ことで、グラフを出力するために、 Chart.js を使います。 これはこれでよいなと思いますが、 Google Charts もあるからね、とは思ってしまいます。 そして、いよいよTask15でPythonは終了となりますが、一つの山場と考えているStripe連携。 ここまで連休中に終わらわせておいて、Swiftに入りましょう。

AWS Loft vs YAHOO LODGE

AWSオープンということで、早速行ってきましたので、YAHOO LODGEとライバル比較! AWS Loft https://aws.amazon.com/jp/start-ups/loft/tokyo/ 目黒駅前(目黒セントラルスクエア) 平日のみ(平日(月〜金) 10:00 〜 18:00) 入館時に、AWSアカウント ID(12桁数字)記入が必要  YAHOO LODGE https://lodge.yahoo.co.jp/ 永田町、赤坂見附など(東京ガーデンテラス) 休日も入館可能(9:00-21:00 休館日:年末年始、毎月第一日曜日、不定休) 身分証で入館 所感 どちらも、館内のきれいさ、景色の美しさは申し分なし。 土日もやってくれてるという点で、LODGEのほうが助かりますが。 また、LODGEの下2階のファミマ!!が、素晴らしいので、ダブルで作業できるという点でも、強い。 しかも、成城石井もあるので、お弁当ラインナップは個人的には最強。 ※2018/10時点の情報です。 AWS [][1]エレベーターから雰囲気を醸し出すのがさすが [][2]ガラス面積が大きく快適 [][3]カフェも格安で提供 [][4]段ボール感

LODGE [][14]これまであまり意識していませんでしたが、意識高い系書籍もいろいろ [][15]赤坂の景色も負けていません [][16]1g2円で好きに詰められる(詰め方のセンスはしかたないです) [][17]カフェというかレストラン おまけのファミマ!! [][18]ここの文具がまた侮れない(多分季節ごとに入れ替え)


Code4StartUp ~ UberEatsを作ろう ~ Postmanのはまりポイント

Code4Startup Task11で、27分の長丁場のレッスンがあります。 いったん全部見てから、書いてみたのですが、途中ではまりました。 「AccessToken matching query does not exist.」 これは、結構な人がはまっているようなのですが、なかなかまともな回答がついていないように思われます。 正しい回答はこちら。 https://uploads.disquscdn.com/images/bcf707b4c65186dcfcc293547fc57bbae63e2fa0fbddc89aa6b82dbdb7418f69.png Postmanのパラメータ指定時に、Body→form-dataを指定する必要があります。 そうしないと、request.POST.get(“access_token”)がNoneになってしまうのでした。 改めて、ビデオを見返すと、ちゃんと説明してくれてますなぁ>< そして、同じ質問が、teratailに上がっていたので、初めて回答してみました。 もう少し飛ばしていきたいのですが、必ずどこかではまりますね・・・

Code4StartUp ~ UberEatsを作ろう ~ 久しぶり

Code4Startup 色々並行ででやっていると、再開方法を確立しておかないと忘れますね。 source myvirtualenv/foodtasker/bin/activate cd foodtasker/ python manage.py runserver xxx.xxx.xxx.xxx:8000 これでhttp://xxx.xxx.xxx.xxx:8000/が動くようになる、という感じですね。 ということで、Task10まで終わらせました。 とありあえず、Task15まで一気に進めて、Tsk16からのSwiftによる顧客向けモバイルアプリ作成を早く試してみたい。  ちなみに、Pythonやってるなら、こちらも面白そうですね。 Pythonで学ぶ『ブロックチェーンプログラミング入門』が良すぎた話  関連記事 Code4StartUp ~ UberEatsを作ろう ~ Swift環境 Code4StartUp ~ UberEatsを作ろう ~ 淡々とページ追加 https://www.programmers-office.ml/?s=code4