見出し画像

Cook Pad.apkに参加!

どうも”おもり”です。

先日の記事で、料理業界の将来とかについて語りました。

そして今日はクックパッドにお邪魔してきました。

全然関係ないですが、恵比寿って物凄くキレイなところですね(笑)

筆者は生まれてずっと京都に住んでいたので、東京歴が少ないです。

なんと今日が始めての恵比寿探訪となりました(笑)

無料のイベントなのですが、ご飯やお酒も嗜みながら公演を聞けるというありがたーいイベントです(笑)

ご飯が出るイベントも多いのですが、Cookpadはさすがに美味しい料理が多いなって感心でした(笑)

Androidのテストについて

Robolectricというフレームワークについて話がありました。
筆者は全く聞いたことの無いフレームワークでした(笑)
遅れて参加していきなり分からないとは(笑)

Android APIを利用するテストをローカルJVMでも動作させることができるすごいもの。

エミュレータを使わなくても良い。

JUnitよりは速度が遅い

ActivityやFragmentのテストもすべてRobolectricで完璧!?

そんなことはなくて、OSの挙動を模倣しているだけなので、実際の動作と異なることが出てくる。

できること

・ライフサイクルメソッドの呼び出し

・Contextおよびリソースへのアクセス

・Espresso(UIテストフレームワーク)を用いたUIテスト

できないこと

・Looperのイベントループ
(Android OSのメインスレッド:イベントの処理をする)

・Activity及びActivityManagerの状態管理

・Viewレンダリング

Shared Test

RobolectricとAndroid実行環境どちらでも動作するようなテストを実装する。

実行頻度の高いタイミングではRobolectric

クリティカルなものに関してはAndroid実行環境

つまり、大事なところはちゃんと見て、そこまで大事じゃないなら自動化しようよということですね。

ただ、Robolectricを理解する前には実装するのは危険。バグを踏みやすいらしいです。

Robolectricを学ぶのにおすすめは??

ないらしい(笑)強いて言えば、GoogleのソフトウェアレポジトリやCode lab。知ることは出来るが、自分でやってみないと深くは分からないと思います。

クックパッドマート

クックパッドの新規事業です!

https://play.google.com/store/apps/details?id=com.cookpad.android.martec

クックパッドマートとは?

生鮮食品のECサービス(2018年秋リリース)

都内、神奈川の一部エリアで対応しています。

当日朝8時に注文した食材が17時に届くというサービスです。

ユーザー向けアプリと配達員用アプリがあるようです。どちらも普通にインストールできるみたいですが(笑)

Kotlin 100%

設計 MVP

全画面 RecyclerView

などの技術的な話もありました。

MAU

ユーザー:1000人以上

配達員:100人以下

アプリの滞在時間

ユーザー:数分から数十分

配達員:数時間

一般ユーザーと配達員では、真逆な結果ですよね(笑)考えてみれば当たり前だが(笑)

androidだとDataBinding使ってMVVMがメジャーだと思いますが、MVPを選んだ理由を知りたいです。という質問がありました。

Android開発はもうMVVMを使おうぜっていうことなんでしょうね。筆者はMMVMとは?という感じですが(笑)勉強勉強!

Android開発をワクワクするものにしよう!

開発効率化と技術効率UP

Cookpadアプリの歩み

2012年にリリース(Android)

Cookpad Android WebView

コンテンツの更新や新機能をすばやくユーザーに提供すること

テストや不具合検出が難しかった

ネイティブアプリ化(2014年)

Androidの公式ドキュメントの整備不足。技術レベルの分散化

ビルド・CI待ち時間に時間がかかる。このような課題があった。

それを改善するために日々頑張っているとのことだった。

・CI待ち時間削減

毎週リリース⇒リリースフローの自動化  

・ビルド時間の短縮

3分弱⇒30秒

いや、短いーーー!!良いなと思う(笑)逆に長いのに慣れていると、3分弱で長いと思うことも無いかなと思う。

筆者の会社だと、ビルド時間とか普通に2時間程度かかるのだが、それに比べたらネイティブアプリとかだともっと短いと予想しているのだが、違うのだろうか?

Macbook Proを支給(CPU8コア、メモリ32GB)

個人の開発PCの性能も上げているようです。

以上が発表の内容でした。

ってか、いつもITの勉強会に参加すると思うのだが、みんな私服すぎてびっくり(笑)今回もワイシャツを着ていたのは筆者だけでした(笑)

同じ机に座っていた男性3人ともみんなGoogle Pixelだったのも面白かった(笑)さすがAndroid関係のイベント。この中にApple信者もいたのかな?(笑)

懇親会タイム!!

こういうイベントでは必ずと言ってある懇親会タイム。実際のエンジニアと触れ合う機会でもあります。

いつも思うのだが、発表者達は発表者で固まるし、友達同士で来てたら友達で固まるしと、1人で来てるタイプには厳しいことが多い(笑)

あまり話はできなかったですが、、、
有効な勉強法についてだけ質問出来ました!

1.Android Developerのドキュメントを読む
・現役エンジニアでも知らない内容が詰まっている。
・少し古い情報だが、現状はレガシーコードの改善案件が多いので、そこのニーズにはピッタリな材料

2.個人アプリを開発してメンテナンスを継続する
・アプリのリリースルーチンをしっかり把握できている人は少ない。自分で作ったもののメンテナンスは凄く良い経験になるとのことでした。

筆者も今は、毎日の通勤時間にAndroid Deveroperのドキュメントを読んでいます!こちらは継続してやってこうと思います。

筆者も早めに個人アプリを開発してリリースすることに注力しようと思います。


最後まで読んで下さりありがとうございます。最近は本当に仕事が多いので、イベントに参加してくてもできない日々が続いていました(笑)今日は何とか参加できてよかったなと思います。また明日も投稿しますので、良かったら読んてやって下さい。それでは、またまた。。。

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

note.user.nickname || note.user.urlname

func pleaseSupportMe() { if ( isSupportedFromYou ) print("より一層がんばります!") else print("頑張るぞい") }

спасибо(スパシーバ)
2
どうも”おもり”です。今年は毎日投稿を目標にしています。アプリケーションエンジニアですが、節約や投資などにも興味があり、絶賛奮闘中です。『成功するまでは止まりません』がモットーです!良かったら読んでやって下さい。。。