hanahanahunachi’s diary

Android studio でお勉強してます。

マッチングエージェントさん(サイバーエージェントさん)でインターンしてきました!

こんばんは.

ふなちです(((o(*゚▽゚*)o)))

 

8/13~9/7までマッチングエージェントさんでAndroidエンジニアとしてインターンしてきました!

マッチングエージェントさんはサイバーエージェントさんの子会社で,「タップル誕生」というアプリを作っている会社です.

 

Agenda

- お仕事の内容

- プログラムを書く中で学んだ事

- プログラミング以外で学んだ事

- お仕事以外での活動

- 大変だった事

- 自分の中での課題点

- 最後に....

 

※文字サイズが小さくなっている部分は読んでもらおうと思って書いてる訳ではないので読み飛ばしてください!参加したイベントに関するブログはまた別で書きたいと思います!

お仕事の内容

KotlinでAndroid アプリのコードを書かせて頂きました.

主に,

- 既存の負債コードの修正.主にflux化とListAdapter化.

- テストを書いた.(自分の書いたコードのみ)

- 施策の実装.

- その他小さなissue潰し.

等をしました.

プログラムを書く中で学んだ事

- flux.

- コードレビューの仕方.

- テストの書き方.

- Android Studioの便利なショートカットキーや機能.

- ペアプロの楽しさ. 

flux.

そもそも私は,インターンに参加するまでfluxとは何か?というのはAndroid設計パターン入門の本を読んでほわほわと知っているけれど,fluxの設計思想で書かれたコードに実際に触れたり,書いたりしたことがありませんでした.

\今までMVVMばっかり触ってました/

最初のflux化は,MVVMの設計思想に基づいて書かれている画面をflux化する事でした.

MVVMには慣れ親しんでいたのでどこに何が書いてあるのかすぐに分かったのと,9割型同じ機能をもつ画面が既にflux化されていたのでそのコードを参考にしする事ができました.そのお陰もあり,fluxとはどういうものか何となく学べつつ1~2日でflux化することができました.

その後も3箇所くらいflux化しました.その中でfluxの書き方と良さみを知る事ができました.

私が学ばせて頂いたflux化については,メンターさんだったへいへいさんの

Flux for Android - Speaker Deck

www.youtube.com 

のスライドを見ればわかるのでここでの発言はちょっと省略します!

 

スライドとはちょっと違うところは,LiveDataとListAdapterを使って書いてたくらいだと思います.

Adapterに関してはListAdapterじゃないとモヤモヤする病(楽をしたい病)にかかってるので勝手に無心でRecyclerView.Adapterから書き直しました!!

ちなみにLiveDataの問題点である垂れ流し問題(あの画面回転したらもう一回イベントが飛んでくる的な問題)はSingleLiveEventで解消していたので問題なしです!

ただ,LiveDataを使ってもprivateのMutableLiveDataとpublicのLiveDataで二つプロパティ用意しないといけないのが悲しいお気持ちになるので,いい感じのものが出て欲しいです!(公式に対してissueとしては話が出てるみたいなので楽しみ!) 

その他Tips

- SharedPreferences関連はStoreにかく.

- ActionCreatorを叩くのは,Viewで!ActionCreatorのAとBがあった場合,AのActionCreatorを叩いた事により得られる値を使って,BのActionCreatorを叩きたいってなった場合も,(複数のActionCreatorを叩きたいってなった時も,)ごちゃごちゃなるのを伏せぐためです.

-  (これは好き好きかもですが,)Viewだけで完結するものは,Viewで完結させる.当たり前だけど,脳死で書いていると,全て回そうとしかねないのでちゃんと考える.

fluxの私流の書き方(自分用のメモ)

- Viewで必要な情報を洗い出す.

- Storeに必要な情報を垂れ流してくれるLiveDataを作る.

- Action Creatorに通信処理周りを書いていく.

- ActionにAction Creatorを書いていく中で必要になったActionを書いていく.

- StoreにActionの受け取る部分を書く.LiveDataの値を更新するのもここ.

- StoreのLiveData群のうち,どれかのLiveDataに依存するものの値をTransfomationとかMediatorLiveDataを使って更新させる処理をかく.

- Viewでちゃんと値を受け取る体制ができているかの確認と,まだ回せるものがないか探す.

- 最初に戻るか,終わり.

私の感じたfluxの良さみ.

- ActionCreatorに非同期処理周りを書く!Storeにロジックを書く!って決められているのでコードが描きやすい!MVVMだとVMが肥大化した末迷いが生まれたりした経験があったのでそういった事がなくて良い!

- Actionをリスト画面と詳細画面のStoreで受け取るようにする事で情報共有が簡単に出来る!onActivityResultとサヨナラ出来る!(ただし,LiveDataから情報が渡ってくるタイミングはちゃんと知っておかないと挙動に驚く羽目になるので注意です?)

- コードレビューがしやすい.(ここ大事!!)

fluxへのモヤモヤ

- Storeの肥大化.この話はsato△さんにお話を聞いたのですがReduxまでは行かなくともStoreのコードを分散させれるReduceみたいなものを作った方がいいのでは?というお話でした. 

コードレビューの仕方. 

4週間もお世話になったのもあり,コードレビューしていただく機会もする機会も沢山あったからこそどうやってすべきなのか学べました.

前のインターンは2週間だったのもあり,自分の仕事に手一杯でなかなかコードレビューをする事ができませんでした.自分のせいなのもあり後悔してました.

ですが,今回はかなり人のコードを読む事ができ,勉強する事ができました!まだまだ修行が足りませんが....

私のコードレビューの仕方は,Github上でdiffを眺めて(。 ・ω・))フムフムとしていました.

- どういうところに気合いを入れて読むかなんとなく考えて読むとより良いコードレビューができる.

- なんの処理をしているのかわからない部分は遠慮なく質問する事が大切,

という事を学びました.

ちなみにfluxで書かれているコードほど読みやすく,StoreとActionCreatorを読めばだいたいわかる.みたいな感じで良かったです.設計って大事やな!

また.コードレビューをしていただいて色々知る事ができて良かったです.ありがとうございます.

テストの書き方.

今までテストをちゃんと書いた事がなかったのでいい経験になりました.

- flux化した部分のテストを書かきました.

- Storeのテストを書くのが難しかったです.Mock地獄になってしまいました.自爆なのですが特にLiveDataが連鎖的に変更する場合のテストが...Testableなコードを書くよう心がけていきたいです.

 テストを書く事で,何箇所かバグを見つける事ができました.その度,このためにテストはあるんやな.と感じる事ができました.

テスト,大変だけど書いて損はないのです!!

 

Android Studioの便利なショートカットキーや機能.

- Show memory indicator

f:id:hanahanahunachi:20180916004337p:plain

f:id:hanahanahunachi:20180916004347p:plain

その他色々....!全部書くのは大変なので....👀

 

ペアプロ楽しさ.

ペアプロとは,ドライバーとナビゲーター?に分かれてドライバーがコードを書いてそれを見ながら質問や指摘やをナビゲーターがする.という形でしました.

ペアプロをする事でコミュニケーションができ,実は理解していなかった!という部分が知れたり,悩んでいた部分の解決を早くする事ができたり,Android Studioの自分の知らない使い方を学べたり等する事ができました.

一度だけナビゲーターをさせて頂いたのですが素早くコーディングするコツを学べて良かったです.プロのコーディング力は全然違うなって思いました.

素早いコーディングのコツ:似た感じのclassを丸っとコピぺして再利用するの大事!

へいへいさんと何回もペアプロをさせていただいてました.他の方とも一緒にペアプロさせていただけて楽しかったです感謝です.

プログラミング以外で学んだ事

- 工数は正しく見積もる!

- KPTを書き出して話し合うの大切.

工数は正しく見積もる!

インターンにきたばかりの時,最初のメンターさんだったnamikiさんに

「今のお仕事何日くらいかかりそう?」

と聞かれ,その時は特に困った事がなかったので私は,

「あと2日で終わります!」

と答えました.ですがテスト書いたりしていたのもあり2日で到底終わりませんでした😭

もしこれがプランナーさんに聞かれていたりとかしてたら詰んでいたと思うとヒヤヒヤしました.

工数を見極めるのも経験と知識が必要なのですが,それ以前にnamikiさんにアドバイスをもらった通り,自分にあまりにも不利すぎる工数は言わないようにしようと決意しました. 

KPTを書き出して話し合うの大切.

チーム(施策)メンバーと月一,Androidチームメンバーとは週一でKPTを行ってました.

KPTの良さみ

- 実は気になっている事や困っている事を伝えるいい機会になる.

- 認識の差を払拭できる.

- 褒め合う文化もあったのでモチベを高められる.

- 考えや気持ちを共有する事でチームの仲が良くなる.

- 週一開催なので負担にならない.

私は今までKPTを洗い出しみんなで話し合うという事をした事がありませんでした.

でも今回経験させて頂いてとても大切な事なんだなと知る事ができました.私自身良く認識の差が発表会直前に見つかりデスマする羽目になったりなど経験してきたので,今まで取り入れて来なかったことに後悔です... 

お仕事以外での活動

- 尊敬する方々とランチ🍔

- 部活動🏓

- 打ち上げ🍹 

- お仕事全く関係ないのもあるけど記憶に残ったディナー 

- 一人暮らし

尊敬する方々とランチ🍔

主にへいへいさんがいろんな方とランチを設定してくだ去ったおかげでいつもqiitaやブログ等でお世話になっている方々に会えました.

ogaclejapanさん,takahiromさん,前川さん,sato△さん...等々沢山の方とランチさせて頂きました!

またAndroidersランチ🍚も開催されており,美味しいお弁当を食べながら勉強になる話が聞けて楽しかったです.

Home · airbnb/MvRx Wiki · GitHubが気になる👀といった話や,jetpackの導入状況の話などをしていました.

みなさんとても優しい方で色々なお話を聞かせてくださり,有意義な時間を過ごす事が出来とても嬉しかったです.もっと精進してもっと沢山お話したいなとも思いました!

他にも,シャッフルランチといって会社の中でエンジニアだけでなく全員でランダムにチーム分けをしてランチに行くというイベントが毎週開催されていたのですが,そのイベントでも普段お話しないような方とお話する事ができたりして楽しかったです.

f:id:hanahanahunachi:20180916211231j:plainf:id:hanahanahunachi:20180916211241j:plainf:id:hanahanahunachi:20180916211245j:plainf:id:hanahanahunachi:20180916211253j:plainf:id:hanahanahunachi:20180916211300j:plainf:id:hanahanahunachi:20180916211309j:plainf:id:hanahanahunachi:20180916211322j:plainf:id:hanahanahunachi:20180916211332j:plainf:id:hanahanahunachi:20180916211347j:plainf:id:hanahanahunachi:20180916211405j:plainf:id:hanahanahunachi:20180916211433j:plainf:id:hanahanahunachi:20180916211041j:plain

施策?チームでランチした時に食べた鰻も美味しかったです.

f:id:hanahanahunachi:20180916211051j:plain

ほとんどなかったのですが,一人の日は会社で安く買うことのできるチキンや野菜を食べながらネットサーフィンをしていましたϵ( 'Θ' )϶チキンが美味しかったです.

f:id:hanahanahunachi:20180916210205j:plain

 🍚に関していうと,楽屋の唐揚げが美味しかったです!でも一個が大きすぎて3個/5個しか食べられませんでした.鍛えてリベンジを謀りたいです!

部活動🏓

一回しか参加していないのですが,へいへいさんに卓球部の活動に連れていって頂いたのがとても楽しかったです.

沢山汗かいて,沢山笑えて最高でした!!

f:id:hanahanahunachi:20180916213905j:plain

大人になったらまた参加して,🏓のあと呑みに行きたいです🍻

打ち上げ🍹

月の最後に打ち上げがありました!

美味しいドイツ料理とビール(私は飲んでないです)に囲まれて\わいわい/しました.

お酒入ってないのに超やばいことを話した気がするのですが,忘れてください!(きっとお酒入ってましたし忘れてくださってるはず...)

みなさん楽しそうで,それを見てられるだけで私は楽しかったです.

f:id:hanahanahunachi:20180916214106j:plainf:id:hanahanahunachi:20180916214140j:plainf:id:hanahanahunachi:20180916214208j:plainf:id:hanahanahunachi:20180916214214j:plain

お仕事全く関係ないのもあるけど記憶に残ったディナー

にしこりさんと

小さい企業で働いている方のお話を聞くこともそんなにないので,いい経験になりました.あと,ご飯が美味しかったです!

f:id:hanahanahunachi:20180916214359j:plainf:id:hanahanahunachi:20180916214404j:plainf:id:hanahanahunachi:20180916214413j:plain

釘宮さんとよこちさんと

このブログを眺めた方は多少わかると思うのですが,本やブログですごくお世話になっていたので,一緒にご飯にいけてお話できて嬉しかったです!

地元が近かったのでその話をしたり,他のAndroidエンジニアの方についてのお話や,少しですが設計のお話を聞かせていただけました!コミュ力と知識量を鍛えてリベンジしたいです!

お豆腐をお客さんの机の上で作ってくれる美味しかったです□

 

f:id:hanahanahunachi:20180916214624j:plainf:id:hanahanahunachi:20180916214635j:plainf:id:hanahanahunachi:20180916214647j:plain

インターン最終日の🍚

namikiさんとへいへいさんと🍚に行きました.へいへいさんは次の日始発?の飛行機で大変だというのに連れていって下さってほんとに嬉しかったです.

この時初めてお二人ともアニメに詳しい事がわかって驚きました!!(今更です.)

パンケーキも美味しかったですし,一番お世話になったお二人と悔いの残らないくらい色々沢山お話出来たので良かったです.

こうやってお話できるのもこれが最後かって思うとちょっと寂しかったです😭

f:id:hanahanahunachi:20180916220106j:plainf:id:hanahanahunachi:20180916220110j:plainf:id:hanahanahunachi:20180916220119j:plainf:id:hanahanahunachi:20180916220125j:plainf:id:hanahanahunachi:20180916220202j:plain

一人暮らし

一人暮らし最高!自炊出来たので生活費も抑えられました.

しかも会社から徒歩5分弱のマンション?を借りて頂いていたのでゆっくり睡眠を取ることが出来て最高でした.(普通だと女の子は遠くめのホテルに止まる羽目になるので..)

大変だった事

特にはないです!

あえて言うなら,もともと人の名前を覚えるのが不得意なので沢山の方とお会いしすぎて名前を覚える事ができず大変でした.

自分の中での課題

とりあえず何にせよ遅刻をなくしたいです.

また,コードを書いていて力不足だなと感じる事も沢山あったので,これからも頑張って行きたいです!

最後に....

インターンに来る前はそもそも行けることすら信じられず,実力が足りずに悲しいことになるんじゃないか?と不安で仕方がなかったのですが,インターンを終えて,

インターンシップに来てよかった!!超楽しかった!!役に立てて嬉しかった!!

就職するってなった時にチャレンジするだけの力があったら....入社チャレンジしたいです!!(小声)

と本気で思いました.

真面目に会社の方々全員良い人だし明るいし強いし私がこんな所にいても,こんなに楽しんでも,良いのだろうか?今が私の人生の中で一番Happyな時期時期かもしれないと思う程でした.

また,テストを書く練習や簡単なCustomViewを作らせてもらえたりなど,やりたい事をさせてもらい色々経験を積む事ができました.お陰様で最後のpushがCIを通らなかった事以外,悔いは残ってないです!

最後の最後に...

私に優しく接して下さったり体調を崩した際にも助けて下さった会社のみなさん,分からない時色々助けて下さったり色々お話して下さった施策?チームの皆さん,私に色々教えてくださったりコードレビューをして下さったAndroiderのみなさん(あつもさん,充さん,むっきーさん),コミュ障の私にも沢山声をかけて明るく話しかけて下さったプランナーのアニーさん,私に最初に声をかけてくださってインターンに参加させていただくきっかけを作って下さったnamikiさん,メンターさんとしてして私に色々なことを教えてくださったへいへいさん本当にありがとうございました.

 

色紙と花束嬉しかったです.

f:id:hanahanahunachi:20180916220715j:plain

 

 

PS.

午前中に用事が入るかもしれない関係で27日のお昼,ぼっちする予定なので一緒にお話🍚してくださる方募集してます...!

potetotips #54 に参加してきました!!

こんばんは,ふなちです!!

今日は,

「potatotips #54 (iOS/Android開発Tips共有会)」

にブログ枠で参加しました(((o(*゚▽゚*)o)))

主催はeureka, Inc. さんでした.

f:id:hanahanahunachi:20180823235652j:plain

写真撮るの下手でほんとすいません。゚(゚´ω`゚)゚。(なんかInvisible reCAPTCHAとかの画像認証?の写真みたいになってしまった...

 

ではでは今回のAndroid枠のTipsをまとめて行きたいと思います!!

iOS枠Tipsにも良いものは沢山あったのですが,私が知識をまったく持ってなくてデマを書きかねないので今回も遠慮させて頂きます \ゴメンナサイ/

また,誤った記載がある場合は即Twitter等でリプ飛ばしてください. 

1日でできる!ARCoreことはじめ by zukkey

speakerdeck.com

github.com

↑スライドとサンプルコード

Unityじゃなくて,Android Studioを使って,ARCoreを使おうぞ!と言うLTでした.

Unityに普段あまり触れてないな私みたいな人には朗報!!

ざっくりした実装の流れとしては,シーンを生成して,それにNode(モデル)を追加する.そして,その追加したNodeは移動,縮小,拡大,回転,が可能なのだそうです.デモでは,ドロイド君が沢山生成されて大きさを変えられたり,していて可愛かったです(((o(*゚▽゚*)o)))

また,円柱とか直方体とかは標準で用意されており,ViewRenbableを使って,簡単に表示する事ができるそうです.

ARCoreめっちゃ気になってたので,このLT聞けてよかったです!

今すぐにでも試したかったのですが,私はEssential PhoneとZenphoneしか持ってないので諦めました。゚(゚´ω`゚)゚。

ARCoreサポート端末一覧:Supported Devices  |  ARCore  |  Google Developers

 

 OculusGoの開発Tips by h-godai

Oculus Goのアプリの開発に関するLTでした.

※Unityにほんとに詳しくない&記憶を頼りに書いているのであまりかけてないです.

Oculus GoはAndroid端末なのでUnityで開発できるそうです!

Oculus Goアプリ開発において大切なのはfps問題だそうです.fps遅いと酔っちゃうみたいです🌀🌀

あまりにも重くなるような処理を有効にするようなチェックボックスのチェックはちゃんと外したり,あまりUserが気づきにくい無駄な処理等をしないように工夫すべきだそうです.例えばshadowの処理とかコントラストとかの処理はできるだけ省くべきだそうです.

Oculus Goせっかく持っているので私も何かしら活用したいです..

uber/motif by shaunkawano

speakerdeck.com

github.com

 ↑スライドと今回のLTをするきっかけとなったツイートとライブラリ.

Uber製DIライブラリのmotfiについてのLTでした!

motifって?

  • ネストされたスコープのために最適化されたシンプルなAPI
  • 実際の依存性注入のためのDaggerのコードを生成してくれる!
  • 絶賛開発中だよ!!(● ˃̶͈̀ロ˂̶͈́)੭⁾

実際にmotifを使ったコードからDaggerのコードを生成!

詳しいコードはスライドに乗ってるから省きます!

@Scopeと@Objectだけで,ComponentからModuleまで複雑なDaggerのコードを生成していて凄いです...

あと,@Exposeを使うことでサブコンポネントに公開するかしないかを選べちゃいます.@Exposeをつけたものはサブコンポネントに公開されます.

スライドの例で行くと,ChildScopeでRetrofitのインスタンス使いたいぽよ!って時に,もし@Exposeをつけてないとエラーが出現🐜そこで@ExposeをつけたらOK!エラーは消えます💥

アノテーションの種類も多く覚える事が多いDaggerに比べ,覚えなきゃいけない事が少なく学習コストが低いmotifはとても便利そうです.

使うかどうかはちゃんと概念(哲学)理解してからにしような!だそうです.

Androidにおける歩数取得とバックグラウンド制限 by KensukeIzumi

speakerdeck.com

www.slideshare.net

Androidで歩数取得をする方法には

  1. Google Fit APIを使う
  2. SensorLisrenerを使う
  3. 加速度センサーを使ってゴリゴリ

があるそうです.

上の項目ほど,簡単で.精度を高めたいなら下の項目の方法を使用すべきだそうです.

加速度センサーを使う方法は,かなり大変なので採用しなかったそうで,はたまたGoogle Fit APIも採用しなかったそうです.

Google Fit APIを採用しなかった理由は,Google Fitアプリと歩数が異なってしまうからだそうです(やばい).発表後詳しい話を聞いたところによると,そもそも歩数を計測する仕方がGoogle Fit APIGoogle Fitアプリ間で異なるそうです.Google Fitアプリではローカルでよしなに歩数を計測し,Google Fit APIではまた別のロジックでクラウドを介して色々やっているみたいです.だからGoogle Fitアプリと歩数が違う!と言う声をなくすためにも,SensorLisrenerを使うを使って実装したそうです.

ただ,SensorLisrenerを使うにしてもバックグラウンドで実行すると,Dazeモード(省エネモード)等に気を使わなくてはならず,AlermManagerを使って歩数取得をしているサービスが終了しそうになったら復活させると言う処理で代用していたそうです.という訳で,ForgroundServiceを使おう!って話でした.ただ,ForgroundServiceはどうやってUserから止められないよう工夫するかがネックになってくるそうです.

Android,省エネ大事精神がすごいのでdeveloperにとってはちょっと大変です...Pからはバックグラウンドが使えなくなっちゃうし...にゃーん🐱

Ripple再考 by yiwaisako

Rippleって言うのは,タップしたらぽわんって円が広がるエフェクトのことです,

公式ドキュメント:RippleDrawable  |  Android Developers

これの実装の仕方についてのTipsでした.

API 21から追加されたものですが,Lollipop(API level 21)では気をつけなければいけないことがあるようです,

例えば,ボタンのみにrippleをつけたい場合には,

<android.support.v7.widget.CardView
android:layout_width="368dp"
android:layout_height="wrap_content">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
</android.support.v7.widget.CardView>

みたいな感じでFrameLayout(CardViewはFrameLayoutを継承してるのでOK)でtextを囲んだ物をButtomにしたり,drawbleリソースを定義する際には,rippleタグだけじゃなくitemタグの方にも色を指定してあげないとちゃんと動かないそうです.

 

Share apk via Bitrise  by kaelaela

speakerdeck.com

Share apk via Bitrise - Speaker Deck

↑スライド.このリンクに必要なリンクが全て書いて下さってるので超親切🙏🙏

タイトルの通り,bitrise+slackでapkを配布しよう!というLTでした.

apkをテスターさん等に配布するとき大変で無駄なコストがエンジニアにかかるのを避けたい!という気持ちからこのやり方を導入したそうです.

必要なのは,

  • Bitrise start Build step
  • Deploy to Bitrise.io step
  • Send a slack Message step
  • 簡単なshell script

だそうです!こんだけ!!!!

詳しい設定の仕方はスライドに丁寧に書いてあるので読むといいと思います.

私も最近,apkを友達にdeployGateを通して配布していたのですが,urlを教えなければならず,バージョンが変わるごとに毎度毎度リンク生成→コピペを繰り返していたので次はこの方法を導入したいです.

あとで聞いたのですが並列実行はこの資料の通りにやるだけじゃできないそう?なので,スライドの更新?楽しみです!!

Android/iOS端末間でデータを送る。BLEで。by coffeegyunyu

www.slideshare.net

 AndroidiOS間でBLE通信を行う方法についてのLTでした.

BLTは一気にたくさんのデータを送ることが無理🙅‍♀️なので,データを細かく分割して送信したり,その送信ではリクエストを沢山飛ばす関係で時間がかかったりする為色々工夫しなくてはなりません.

でも,MTU(Maximum Transmission Unit)を調整することで最適化が可能に!

Android -> iOSでデータを送る時(スライド6ページ)

iOS -> Androidでデータを送る時(スライド9ページ)

のやり方で行われるそうです.

ちなみにAndroidはMTUを取得できるAPIがあるのですが,iOSではMTUが取得できないのでAndroid側からMTUを知るしかないようです.

最後に,端末の割いてきなMTU取得方法を知っている方教えてください.との事です🙆‍♂️

まとめ

他にも,iOS枠のTipsでは,U+202E(Right-toLeft override, RLO)のお話とかもあり,勉強になった.

potetopisに参加するのは3回目なのでそろそろ発表すべきかなぁとか考えてます...いつかチャンスがあれば...

 

懇談会

f:id:hanahanahunachi:20180824023435j:plain

↑ピザ,美味しかったです!

 

f:id:hanahanahunachi:20180824023440j:plain

インターンで超お世話になっているへいへいさんまえかわさん(すごく仲良しで楽しそうなので羨ましいです!)

 

懇談会では他の方ともお話させていただけてそこでも新しいことが学べたりして楽しかったです!

eurekaさん運営さん,ありがとうございました🙇‍♂️

 

(読み直していない為,誤字脱字多いと思いますがご勘弁を。゚(゚´ω`゚)゚。)

あとあと,実はリベンジLTしたいスライド持っているのでいい感じの勉強会とかありましたら教えてください☆

Kosenconf in Tokyo 2018に参加した.

こんにちは,ふなちです!

今日(7/17)はレポートを書き上げていたら睡眠時間が1時間になってしまったので,ちょっと眠いです.(高専生の檻)

 

はじめに

今回は,

kosenconf.tokyo

に参加しました.

 

私は福岡に住んでおり,普段は高専カンファに参加できない身です(> <。)

けど今回は,「参加費支援制度」という素晴らしい制度のおかげで今回は参加することができました.

運営のみなさま,スポンサーの企業の方々,支援してくださった方々,本当にありがとうございます🙏

 

発表の感想

※私が聞いた発表のみの感想となります.

実践!イラストでわかりやすく表現する技術 by 湊川あい

docs.google.com

さすが,とても分かりやすい発表で,図解の方法を学べました.

私も昔社会の時間は暇だったので処刑されたり暗殺された人の生首を描いていたのを思い出しました!(真剣に絵を学ばなかったのもあり,絵心0ですが絵を書くのは好きだったはずです.)

図解の方法の

  1. つまづいた事をメモ
  2. 過去の自分に答えてあげる
  3. 表現する
  4. 発信する

また何かを説明する際には

  • 抽象化(つまり...)
  • 実例(こんな事...)
  • 具体化(例えば)
  • 比喩(...みたいなものだ)

を考えながら話すべきというのはとても勉強になりました.

いつも,語彙力が足りず,説明がうまくいかなかったりするのに加え,何からどう説明していいかわからなくなったりなど良くあるので,これからは参考にさせて頂きたいです.

「べき等性」についての図解?(漫画)を描いた.

f:id:hanahanahunachi:20180717155319j:plain

ちょっとだけグラフィックコーディング的な事してみた.

f:id:hanahanahunachi:20180717155316j:plain

(絵も字も汚い.)

余談ですが,あいさんの本はこの前の技術書店4で買わせていただきました.ありがとうございます.

 

ここまで書いて気づいたんですが,いつものこの調子のまま進めて行くとn日かかりそうなので ここからは簡素に感想だけ書いていきたいと思います!(申し訳ないです.)

Dive into the community by うなすけ

scrapbox.io

今の情勢は技術の習得や習熟、もしくは新しい情報の収集において、今やインターネット上の情報を集めるだけでも十分達成できるけれど,コミュニティってとても大切だ.という事を今一度確認できました.

私もdroid grilsというコミュニティに参加させていただいてるのですが,優しい人ばかりでイベントでは沢山学ばせて頂けており最高です.(まだイベント一回しか参加できてませんが,ヾ(。>д<)シ )

また,個人的には尊敬している方や同じ趣味の方と出会う事ができモチベーションが上がるので,イベントやコミュニティに参加したりしてます(?)

 

写真を半自動でアップロードしたい俺たちは by どくぴー

speakerdeck.com

いつも通り勢いのある発表で面白かったです.(寝不足なのにすごいです.)

カメラ沼,ハマると抜けなくなりそう...話変わるけどいつかプロフィール用の写真撮ってもらいたいです!

frash air + Google Photos API + Android 端末(Android Thingsだとなおgood)

だけで自動アップロードができるんですね,というかこれを一日もかからず実装してるのが凄いです...

Google Photos API は積極的に使っていきたいなぁと思いました.

Android Things ver.も見てみたいです!

Interpreting Deep Learning from a Biological Perspective by とちくじ

ディープラーニング(脳)の話でした.

 

全然知識のない分野なので詳しい感想は言えないのですが,

ディープラーニングは脳か?→NO!脳の仕組みを利用して,便利なものを作るという事をしてるだけで,脳と同じ仕組みであるかを確認する手立てがないので,脳を作ることは今後もできない.」

「今のメジャーのディープラーニングの方法はGoogleとかの大手に食いつぶされるので,今からは新しい手法について考えないとダメ!」

ということを学べました.(間違えてたら指摘お願いします.)

かなり詳しい内容にも関わらず分かりやすい発表だったので,ディープラーニングについてちょっと興味を持つことができました.

今すぐ始める社会とつながるMake by きゅんくん

KYUN_KUN Web | Robotics Fashion Creator

モデル×ファッションクリエイター×エンジニアかぁ.

しかも中学生で電子工作して,その時からの夢を叶えてるっていうのに尊敬します.

ファッションにロボット(わざと動くだけ)を取り入れるっていう発想を生み出すのも凄いです.

https://3.bp.blogspot.com/-3jE8fwqqPMM/UZmB6g0YQeI/AAAAAAAATXQ/sWpkbsdYhyU/s800/angel.png

 

 

高専ラノベのつくりかた by 藍月要

「新コーナー コウセンミミッミ」,めっちゃ面白かったです.

こんなに面白い発表見たの初めてかもしれないです.内輪ネタをどうやって使うといいか身を持って学べました.

ただ,PC使ってレポートがかけるなんて,なんて進んだ高専なんだ!!って思いました.(羨ましい)

余談:

そして私たちは東京から帰った次の日の朝提出のレポートに追われる事になる...

本当に似たような状況になって睡眠時間1時間になったのですが,笑えなかったです.(手書き回路図は書いていたのでまだ良かったけど.)

 このレポの続き+準備レポを手書きで書いた.

この後もどうやって異世界物理の本を書いたのか,楽しく知ることができた.

一つ一つのシーンをどう展開していくか,考える事がどれだけ大変かが分かった.答えが見つからないかもしれない物語を考えてるのにどんどん締め切りが迫ってくるなんて...怖い!!本当に尊敬です.

ガルパンも戦車*JKもギャップが良いところ!

 確かにその通りじゃん!って感じだった.(笑った.)

〜他にも面白かったスライド等沢山あるのですが長くなるので省略です〜

すべての技術はメガネに通ず by 福野泰介

jig.jp

の会長さん!

めがね、肖像権とプライバシーの問題とかさえどうにかなれば今すぐにでも普及しそうなのでかけられる日が楽しみです!

スマホ、邪魔ですもん.

3年前まで,PCを持っていなかったし,あまり触れてもいなかったのでイチゴジャムとか欲しかったなぁ.

けど,私は触り始めた年よりもその人の今からのやる気次第で全ては決まるって信じてます!(※これは自分がプログラミングに触れ始めたのが2年前だからというのは内緒です.)

懇談会の時にAR(スマホを取り付けるだけのもの!凄い!)を貸してもらったのですが,良かったです!簡単に自分でARアプリ?が作れるとの事だったのでいつかやって見たいです.

ビッグデータディープラーニングでレコメンド by しゅーたー

リコメンドのディープラーニング はどうやってしているか?というお話.

髪が長いとか,そういった属性の特徴や,描いた人(イラストレーターさん)を学習して,リコメンドする予定らしい.(今は前者だけ?)

絵描きさんは無限といるし似たような絵を書く人だって沢山いるので書いた人を学んで書いた人を当てるのって相当難しいと思うので凄いです.

 ネタがわからなかった!w

イデアをつくる技術 by じぐそう

色々大変でもどうにかな事をっlオススメのツールとかを知ることができた発表だった.

また,kosenconfってこんなに沢山あってたって事を改めて感じることができた.

 なんども同じこというやつたまにしてしまうので気をつけたい...

最後焦ってLTを回していたけど,それでも大体の話の内容は理解できたので上手だなぁって感心してた.

 

Flutterで"""圧倒的成果"""を生み出せ by にしこりさぶろ〜

Flutter,早いし素晴らしいと思う.実際は業務でどれくらい使われてるんだろう?

Vtuberのつくりかた ~初心者がBlenderモデリング~ by 越乃いぶき

コンデンサ君,可愛かった.さすが高専生って感じの発想だ.

Vtuberになってみた! by Hunachi

パワポ何年触ってんだって感じです.ごめんなさい.タイトル詐欺です.やっぱりAndroidアプリ開発が好きな気持ちが抑えきれませんでした(?)
LTを生で見てた人は知ってると思いますが,色々あったので今度YouTubeにでもリベンジした動画をアップします.(もちろんVtuber付き.)
その時でも何か一言感想を頂けると嬉しいです!(今後に向けて参考にしたいので.)

 バーチャル美少女受肉しよう by とぐち 

Unityを使ってプレゼンという発想がなかったので,凄いとおもいました!いつか真似させて頂くかもしれないです.

高専ロボコンの開発現場に情報共有ツールを入れた話 by うに

知らなかったので今度触ってみたいです.

フィルムで写真をとってみた!〜SNS時代のフィルム撮影ワークフロー〜 by あらまきりん

写真が綺麗でした.カメラ沼といい,フィルム沼といい深そうです.

デザインの二面性 by ちげ

スライドからして素晴らしいデザイン...デザイナーと言っても一概に見た目だけを考える訳ではない.というの大事.

Ruby Hack Challenge Challenge by 五十嵐邦明

スライドとコンパイルを並行してしていたのが記憶に残ってます.LTだからこそ見れる光景って感じでした.

部内の競プロ用ジャッジの話 by gedorinku

t.co

昔の部内ジャッチから見た目,機能,セキュリティ面においてクオリティが上がっており凄い.

LTと関係ない話:実装してるのをずっと見てるけど,ここまでながく一つの開発が続けられるの凄いなぁって思います.デザイン以外,なんでもできるイメージがあるので彼はもっと認められるべきでは?みたいな事をいつも思っています.

専攻科卒業から7年でVR起業した軌跡(ショート版) by 野生の男

 凄すぎる人でした.特に,東京ゲームショウに出るために起業するというのに驚きました.
 

その他の感想

ご飯は昼も夜も美味しかった.懇談会では沢山の方に声をかけていただきお話させていただけて嬉しかったです.

f:id:hanahanahunachi:20180718003657j:plain

f:id:hanahanahunachi:20180718003654j:plain

 

LTもさせて貰え,とても楽しかったです.Twitterでの皆さんの反応をみさせていただいたのですが,「頑張って」等の声があって嬉しかったです.

またこういう機会があったら参加したいです.
 
 
余談ですが,Twitterのフォロワー&フォロー数が30人くらい増えて驚いた.人との繋がりが増えるというのはいい事だと思うので,嬉しいです. 
また今回沢山喋らせていただいて気づいたのですが,最近オタク度が増しているみたいです.自分の興味のある事だともの凄いスピードで喋り出すのにそれ以外だと別に楽しく聞いているのに「凄い」「へー」「そうなんですね」くらいしか語彙が喋れてなくて辛いです.コミュニケーション能力をもっと高めたい...,🐕
 
ここまで読んで下さった方ありがとうございました.何か間違え,感想等ありましたらTwitterにでもリプ飛ばしてくださるとありがたいです.

せっかくの誕生日なのでここ半年の振り返り!

おやすみなさい,ふなちです!

 注意:これは私が将来,このころの自分がしたことを忘れてしまった時用に書いています. 

ああああ永遠の17歳のはずが,何故か19歳になってしまいました.

かといって友達みたいに車の免許持ってるわけでもないし,お酒もまだ飲めないし,なんかなぁ〜って感じです.

ただ,JKの年齢ではなくなったので前より一人でうろちょろできるようになりました!(まあ17歳でロンドン一人でフラフラ歩いてたのであまり進化してない感じがしますが.)

あと最近,好き勝手にしすぎたせいか親が出資はしてくれるものの完全に見放してくれるようになりました.感謝しかないです.

というわけで,とりあえず,ここまで生きて来られた事に感謝しながら色々あった半年間の振り返りをしたいと思います!

はじめに

12月までの振り返りは,

hanahanahunachi.hatenablog.com

にあるので書かないです.

 

全体的な感想から言うと,なんか年を取るに連れて時間が短く感じるようになってきました...多分自分のしたい事をするようになったからだと思いますが.

振り返り

1月

部内ハッカソンを開催してみる.参加人数は少なかったものの,面白いものを作って

きてくれた人が多くて感激だった.私は,Google Homeで頭おかしいもの作った.

hanahanahunachi.hatenablog.com

 

あとは確か,この頃に応募したチームラボさんのインターンの合格通知がきて凄いはしゃいだ記憶がある.

こんな私を受からせてくれたことに感謝しかない.

2月

何もブログ書いてないから思い出せないところだった.

確か,2月は期末試験中にも関わらず,

GitHub - Hunachi/GitHunaClient: スパケッティコードなので,読まない方がお得です.

を書いてた気がする.

kodein入門をしたつもりだったけど,実際のところComponentとか上手く使えてないしlifecycle持っているものまでinjectするものだと思ってたし理解できてないなぁ.

あとは,DroidKaigiに行けないのが悲しすぎてTwitterのTLが見れない時期があった.(精神年齢3歳)  

学校では無事進級ができる事が決まった.

3月

インターンに行って色んなイベントに参加して色んな事を学んだ.

hanahanahunachi.hatenablog.com

hanahanahunachi.hatenablog.com

hanahanahunachi.hatenablog.com

4月

3月に行けなかったdroid girlsのリベンジもかねて平凡な金土日に東京に向かって飛び立った.(金曜の授業すっぽかしたけど中間試験で席次1位だったので免除案件.)

この旅行を企画できたのはnamikiさん(droid girlsの中の方)が早めに開催日を告知してくれたからです.しかも社内見学やランチにまで誘って頂いて感謝しかないです!お陰で人生でまたとないだろう,いい経験ができました.

hanahanahunachi.hatenablog.com

hanahanahunachi.hatenablog.com

↑ 4月にした事に関するブログ.

他にも,CAさんのプロの方々とランチさせて頂いたり(緊張で頭回らず死にそうになったけど楽しかったです!),オフィス見学をさせて貰ったり,BCU30に参加したり...後は,一番の目的であったdroid girlsに参加させて頂いたりしました.

droidgirls.connpass.com

以前potetotipsでどくぴー先輩が話していた内容をもっと詳しく学べて良かった.実際に手を動かしながら分からなかったらプロの方々に聞けるという体験は凄く良かった.

尊敬している,あんざいさんとお話できてめっちゃ嬉しかった.

 

他に福岡に帰ってきてから,

mercari.connpass.com

に参加した.初めて地元での勉強会に参加した.効率化,自動化の話が多かったのでiOSの人の話もある程度理解する事ができて楽しめたし,お勉強になった.

mhidakaさんと沢山お話する事ができて,楽しかった.行動力のある人にはとても憧れる.

 

余談(不快と感じる人が多かったら消去します.):被害妄想かもしれないけど,この頃から特に分野は違えど私より出来る人達から「社会性があっていいな」とか,「承認欲求を満たしたいだけでしょ.」とか言われるようになって,その度に「だったら君も勉強会に行けばいいよ!楽しいし自分のやってることにメリハリがつくしやる気も出るよ!」的な返事をしてたけど「自分は社会性ないし無理」と言われちゃったりして自分にとっては、承認される程の実力なんてあるわけないし,ただやりたい事行きたい所に行ったりしてちょっとでも成長しようとしてるだけだったので,よく分からないけど何か悪い事をしているような気持ちになって悲しくなる事がちょっとあった.

 

月末に疲れによるものか分からないけど熱風邪を引いた.

5月

風邪でゴールデンウィーク中ずっと倒れてた.
復活してからは本を読んだり,まだ積み本の量は減ってないけど(不真面目)
↓を作った.
 

インターン先が決まったのは5月後半だったかな,色々わがまま言って人事さん達には迷惑をおかけしました.ごめんなさい.

夏休みは6週間しかなかったので,結局4週間CyberAgentさんに,2週間Wantedly社さんにお世話になることが決まった.

6月

定期試験最終日を終え,hakata.apk でpaging の話をさせてもらった.

https://speakerdeck.com/hunachi/paging-libraryhabian-li-dazo?slide=2

色んな方に支えられてdemoを成功させる事が出来て嬉しかった.

話し下手なの治したいです.

 

その後はVtuber 作ったり,初めてのコード書くバイトさせてもらった以外何もしてない気がする.

↓色々絵を書いたりした.(コンテンツ力がない&声が可愛くない&色々時間があまりないのでVtuberにはなれてないけど)

 

f:id:hanahanahunachi:20180703225657p:plain

f:id:hanahanahunachi:20180703225703p:plain

 

 7月 

 夏風邪を引いて学校を休んだ.

吐き気に襲われて飲み物が一切飲めず(胃も空になっていた為),寮で一人寝込んでいたら,深夜に脱水症状?で魘されて起きて死ぬかと思いました.この時,全身が痺れて重くてこれ以上何も飲まなかったらここで死ぬかもしれない.と思い必死の覚悟でお茶とポカリをちょっとずつ飲んでまた気を失いました.

その朝目が覚めて,少し元気になっていたので病院に行って点滴受けて薬貰って帰ってきて事なきを得ましたが,超きつかったので皆さんどうか夏風邪にはお気をつけて下さい.

これから

インターンと,大学に向けての勉強頑張るぞい!

後は今更すぎるけど,Kotlin in Actionをちゃんと読めてないので読みたい.

 

余談

お誕生日のメッセージを送って下さった方や,プレゼント送ってくれたり手渡ししてくれる方,ありがとうございます!未来の自分に投資してくれているという気持ちを忘れずに,これからも自分なりに頑張ります.

「大きめのAndroidアプリでの設計について考えてみる ~pocket~」を読んだ.

はじめに 

こんにちは,ふなちです!

 

1週間以上前になるんですが,技術書店で入手した

「大きめのAndroidアプリでの設計について考えてみる ~pocket~」

を完走させていただきました.

 

booth.pm

 

頭が悪いのにも関わらず,設計のお話は好きなので,楽しかったですし,とても勉強になりました.

ありがとうございます!

あと,この本の土台となっているリポジトリのコード

github.com

も何度も読ませて頂き,参考にさせて頂きました.(実はDroidKaigiの釘宮さんのセッションの影響もあって,本を買わせていただく前からこのリポジトリは何度か拝見させて頂いてました)

 

これ以降技術的に間違えた内容があるかもしれないです.

間違えの指摘,アドバイス等はhttps://twitter.com/_hunachiにお願いします:bow:

 

※ これ以降は,「大きめのAndroidアプリでの設計について考えてみる ~pocket~」の事を「本」と表現しています.かなり大雑把で失礼になっている気がしますが語彙力不足です.すいません.

 

感想

表紙

女の子とピンクドロイド君が可愛い,可愛すぎてやばたにえん.彼女にしたい.

視点が白板側っていうのも好きです.

 

技術的な感想

 先週,個人的な事情で小さいアプリを作っていたんですが,それはこの本で学ばせて頂いた事を取り入れながら書いたので,基本的には実際に取り入れてみた感想を書いていきたいと思います.

 ※ 本の感想と,取り入れてみた感想を分けて両方書こうとするとやばい量になる気がしたので,取り入れてみた感想をメインで書く事にしましたご了承下さい:bow:.

 

ちなみに今回作成したアプリはこちらです.

github.com

(色々あってミラー版です)

 

また,小さなアプリには不向きですって書いてあるのにごめんなさい,小さなアプリなのにも関わらず参考にさせて頂きました.module分けに関しては,規模の関係もあり好き勝手にしてしまっていて,なにを勉強したんだって感じかもしれないコードになってしまったのですが,ドメイン部分の書き方などを参考にさせていただいたりして,コードの品質が以前より改善したと思います.

 

マルチモジュールについて

DroidKaigi 2018 - マルチモジュールのすヽめ / kgmyshin [JA] - YouTubeで以前学ばせて頂いていたのと,インターン先でもmodule分けを体験していたので多少なりともmodule分けの知識あ持っていたのですが,module分けのメリットなどをより詳しく知ることができました.

コンテキスト毎で分けるのは分かるのですがレイヤー毎にmodule分けするというのは驚きました.確かに,強力なレイヤー化アーキテクチャに!(。 ・ω・))フムフム.

 

実際に大きなアプリでなくてもmodule分けを取り入れる事で,infraの部分は他のモジュール(View)からでは基本repository以外見えない状態にでき,コードの品質がよくなりました.

 

先日のGoogle I/Oで「Dynamic feature modules」の発表があった事もありmodule化の流れが (((o(*゚▽゚*)o))).

 

ちなみに,個人的に以下の記事が分かりやすかったです.

tomoima525.hatenablog.com

 

レイヤー化アーキテクチャについて

今までレイヤー化アーキテクチャを実践しようと思ったことはありましたが,綺麗な分け方がいまいち理解できておらず,迷走し中途半端なレイヤー化アーキテクチャをしたことしかありませんでした.

 

しかし,本で詳しく説明していただいていたので,今までのモヤモヤがほぼなくなり,以前よりもだいぶ綺麗なレイヤー化アーキテクチャを実現する事ができました.

 

そのおかげで,レイヤー化アーキテクチャの恩恵をたくさん受けられました.

特に,domainレイヤーの大切さは実際に実装する中でも実感できました.

コードがぐちゃぐちゃにならずに済みますし,自分がどういうコードを書きたいのかというのをきちんと決めておかないと手が進まないというのも大切だと思いました.(とりあえずコードを書くという悪い癖が治りました.)

またコードがより整理され可読性もかなり上がりましたし,後々のコードの管理がとても楽になりそうです!

 

去年の秋に,知識が乏しい中かなり大きなアプリを作った際の苦しみを思い出しつつ,大きなアプリでレイヤー化アーキテクチャ使わない手はないのでは?と思えました.もっと早く知っときたかった(> <。)

 

レイヤー化アーキテクチャを適用した際の実装順について

また,実装順に関しても参考にさせて頂きました.

本によると,

 

              > ui -> usecase 

domain

             ┗ > infra

 

でした.私は今回

 

domain  ->  ui  ->  infra

 

という順で書いていきました.(小さなアプリだったのでusecaseは使わなかった.)

 

またここに詳しいことは書かないのですが,本にはこれらのレイヤー中での実装順も丁寧に説明されており分かりやすく,凄く参考になりました.

実装例が充実していたのには感謝しかないです:pray:

 

余談なのですが,以前は,部内の開発スピードが早い人に普段,どの順番で書いてるか聞いたりしてどうにか効率の良い開発順を知りたかったのですが,同じ分野をしている人がいないというのもあり,迷走して逆に開発スピードがダウンするという事をしていました.

その結果最近は,一人で開発してるんだし書きたいところから〜とか適当に書いていき後に混乱を招くというバカな事をしていました.

しかし,この本のおかげもあり,今回はスピーディーにモヤモヤもなく開発をすることができました.ありがとうございます!

 

その他で学んだ事
  • MVPについて.

今までほとんどMVVMでの実装をしかしたことがないのですが,この本を通じて,MVPの良さも知ることができました.

PresenterとViewとがContract(intarface)で繋がっている?ため役割を明確にContract定義でき可読性がかなり上がるという点と,機能が多いアプリでMVVMを使うとViewModelが肥大化してしまう問題に直面しかねないが,MVPだとBindingModelを別に作れるので,肥大化が起こりずらいという点でメリットを感じました(。 ・ω・))フムフム

 

今回作ったアプリでは色々考えた結果,DataBindingのBindingAdapterを乱用できたのでそこまでViewModelが肥大化しなかった&Viewへの依存関係は完全に断ち切りたかったのもあり,MVVMを採用しました.

 ※ Contractを使ってViewとViewModelを繋いで可読性をあげてもよかったのかなぁって思いもしました.(迷走タイム)

 

  • ScreenTransitionについて.

先日のGoogle I/OJetPackのNavigationの発表があったので今更この話をって感じかもしれないですが,印象に残ったので書かせて下さい.

これは実質,Navigatorクラスが必要かどうか問題についてなのですが,Navigatorクラス(全ての画面遷移を管理するクラス)は採用せずに,ScreenTransition(interface)を作り,画面遷移の実装はActivityにするという方法について知ることができました.

 

今回作ったアプリではFragmentが存在しなかったので,以前インターンで出会って感動したActivityにもFragmentのnewInstanceを作るという形をとりましたが,Fragmentが存在して,Fragmentの切り替えも一緒に実装するとなると,ScreenTransitionを作る方法が個人的に最適だと思いました!

 

また,Navigationクラスを使うデメリットについてのコラムはとても共感できる内容でした.DroidKaigiアプリでもNavigatorクラスは存在してましたし,他の方のコードにもNavigatorクラスが存在することが多かったので,Navigatorクラスって便利なのかぁって思い試した事があったものの,ごちゃっとなってしまったりして何かモヤモヤしてたのですが,そのモヤモヤを全て言語化してくれてる感じで,スッキリしました୧(๑•̀ㅁ•́๑)૭

 

アプリを作ってみたけど,まだ修正が必要かもと思う部分について

注:この章は,ほぼ本の感想じゃないです!

アプリを作ってみたけど,私の頭が足りておらず,まだ修正が必要かもと思う部分が2つあります.

 

1つ目は,ドメインとインフラは他のコンテキスト(モジュール)から見えないようにすべきという事をしないといけないのにも関わらず,モデル(データクラス)をドメインに書いてしまい,しかもそれを他のモジュールから使えるような形(not internal)にせざるおえない事になってしまった事です.小さなアプリだったので,色々な部分で使うためのデータクラスだけをもつモジュールを作るべきだったのかな?と思いました.

 

2つ目は,infraがデータを提供してくれるRepositoryも,インターフェースだけをpublicにして,それを実装したクラスはintarnalにすべきだったと思うんですが,DIを下手に使った関係でその実装したクラスまでもpublicにせざるおえなくなってしまいました.もうちょっとmodule間で上手にDIを使う方法を考えていきたいです.また釘宮さんのコードも参考にしてもうちょっと勉強していきたいです.

 

 最後に

これを機にアプリの設計についてもっと考えていって,いつか社会に出たりして大きなプロジェクトの設計を考えるとなる機会が訪れるなんてことがあった場合に最適解により近い設計ができるといいです.

 

釘宮さんありがとうございました.

社会人になって自分でお金を稼ぐことができるようになったら恩返しできたらいいです.あわよくば,自分も本を出したりして社会に貢献できるようになりたいです.(厳しい道!)

 

P.S.

技術書店でGETした他の本の感想等に関しても

技術書店4に行った. - hanahanahunachi’s diary

にList化していくつもりなのでよろしくお願いします(> <。). 

「The Book od SobaCha ~Androidアプリ技術解説書~」を読んだ.

こんばんは,ふなちです!

はじめに

先日(だいぶ前かもだけど),技術書店*1

で入手した,

「The Book od SobaCha ~Androidアプリ技術解説書~」わかめそば著

を読ませていただきました.

自分の為にも,感想を残しておきたいと思います.

感想

表紙が可愛い

お腹がいい.

f:id:hanahanahunachi:20180506223644j:plain

 

特にお勉強になったこと

アニメーションについてのお話が特に勉強になりました.

特にスプラッシュスクリーンでのアニメーションとタイムラインの読み込みを同時にするとカクカクなる問題についての話題でUIについて考えさせられました.

実際にMateChaを使ってみても,アニメーションが終わってからのタイムライン読み込みでもそこまで遅さを感じませんでしたし,よく考えてあるなぁと思いました.

全体的な感想

少しは知っている技術について多く書いてあったので,スッと理解できました.

また,ProductFlavorのお話など,今まであまり有効活用できてなかった技術を,実際に活用されている事例を提示しながらどういう風に使ったらよりよく使えるか解説してくださっていたので,とてもお勉強になりました.

また,Android wear(現在ではWear OS)の為のアプリ開発についての内容もあり,今までそんなに興味がなかったAndroid wearに興味が湧きました.スマートウォッチすら持っていないので,お財布に余裕ができたら買ってアプリ開発してみたいです.

技術書店4に行った.

こんばんは!

ふなちです.

はじめに 

ほんと今更なんですが,

techbookfest.org

に行ってきました.

戦利品

f:id:hanahanahunachi:20180505231016j:plain

 

全体的な感想

人が多くて大変でしたが,普段絶対に会えないような方々とお会いすることができてとても嬉しかったです.

また,沢山の本を買えて大満足です!(全部読み切るまでにどれくらいかかるだろう?)

実は今回,技術書店4に行けたのは,前日に飛行機を逃してしまったからなので,技術書店5には前もって計画して行くことができたらいいです.

災い転じて福となすとはまさにこの事...?

 

 せっかく素晴らしい本をたくさん手に入れたことですし,読ませていただいた本の感想をこのブログにあげて行きたいと思います!(読むのも書くのもかなり遅いのでご了承ください.)

 

読み終わり,感想を書く予定&書いてる一覧
  • C♡U Coupling Union 
  • 「わかる!ドメイン駆動設計 ~もこちゃんの大冒険~」techBooster編著
感想一覧