hunachi’s diary

Android studio でお勉強してます。

設計について考えてみる.(さぼった-あとがき-)

実はこの記事は

Prolab Advent Calendar 2017 - Adventar

の22日目の記事の一部として書かれています.

 

先日までせっせとコードを書き直してた上記の後者のほうのリポジトリのコードについてちょっと話させてください.

 

github.com

 

オブジェクト指向を心掛けました.(ん?)

しかし,きちんとした設計を学んでないので自己流意味不明コードが出来上がりました.

そこで私は設計の観点からこのコードのコードレビューしてみることにしました.

こちらを参考にしました

tech.recruit-mp.co.jp

 

 

ついでに私がそれぞれの部分で実装した内容について書いていくので,振り分け,実装の仕方についての『突っ込みどころ』を探しながら読んでいただければ嬉しいです.

 

 

まず

presentation層(濃いオレンジ),domain層(薄いオレンジ), infra層(青)?

に分類していきました.

f:id:hanahanahunachi:20171226122259p:plain

 

providerとviewModelの役割分担に不安しかないので何をさせていたか軽く説明します.

 

f:id:hanahanahunachi:20171226150754p:plain

f:id:hanahanahunachi:20171226122455p:plain

(❌Dao→⭕️DAO)

 特に音楽の再生などをさせる部分というのは,presentation層とdomain層のどちらに割り当てられるのかがいまいちわかりませんでした.

 

※このあと他にも色々書こうと思ったのですが自分が自分の思ってた以上に設計のことを理解していなかったため書けなくなってしまいました(悲しいごめんなさい)

 

 

改善点

  • DIを使っていないので柔軟性がない&テストがしずらい(これ以上大きくする予定のないアプリだったのでまだマシなのかもしれませんが)
  • (皆さんからのアドバイス等を参考にし,随時追加していきたいです)

自分的に良かった点

  •  昔よりActivityがすっきりした.

 

 

 

 

 

 

 

さぼった

この記事は

Prolab Advent Calendar 2017 - Adventar

の22日目の記事として書かれています(5日目のふなちの記事はこちら

 

 

前日はOBのzero先輩でした.

hxs.hateblo.jp

MAについて知ることができる面白い記事でした!

ハッカソンはいいぞ(`・ω・´) 

せっかくなので,今年のLT会でのふなちの資料も...時間があったらどうぞ.

www.slideshare.net

 

でついでにこれもどうぞ.

www.slideshare.net

 

では,本編スタートです.

 

 

Q.1年間ぐーたらしてるとどれくらい人は成長するのか?

 

A.リンゴ一個分成長した.

 

ここからはふなちの成長記🐰なので技術記事以外読みたくない人は

設計について考えてみる.(さぼった-あとがき-) - hanahanahunachi’s diary

をどうぞ。

 

1.目標と現実のギャップ

ちなみに今年の初めに言っていた目標はこれです.

2017年版今年の抱負 - 堕人間の備忘録~

~結果発表~

△悲しいことがあってもネガティブ発言をしません -> バリバリ元気になった.
×先輩を見習います
×自分の好きなことを見つけ、それを精進させます
×TOEIC600目指します
×JMO予選参加
×溜まっている本を読みます
×線形代数微分のプロになる
〇コンテストでプログラマとして活躍したい -> hackU, pck, superson予選, kosenハッカソンくらい?
△Javaともう一言語以上書けるようになる -> Kotlin?
〇コスプレがしたいです -> メイド服,セーラー服とかが主.

 

2.成長したのかな...

  • プログラミング関係

github.com

(そもそも継承を理解していない,FatActivity仕様.)

 ↓

github.com

 

Androidしか今年触ってないのにこんだけしか成長がない・・・.

 

 

あと色々なbugと遭遇しました.

一般人なら絶対に踏まないbugやerror[1] - hanahanahunachi’s diary

kotlin not configuredの解決方法 - hanahanahunachi’s diary

一般人なら絶対に踏まないbugやerror[2] - hanahanahunachi’s diary

 その他主な今年遭遇したbug

gson,retrofitで@Path - hanahanahunachi’s diary

databindingのerrorで毎回詰まってる話 - hanahanahunachi’s diary

Unable to execute dex: method ID not in [0, 0xffff]: 65536 - hanahanahunachi’s diary

など.

 

  • その他

TOIEC 500 (😢)

解析入門(小平先生) の関数のとこまで.

線形代数 第6章まで(商空間とか)+固有値固有ベクトルあたり少し.

整数論? うぃんじー先輩から借りた本の問題の部分のみ

 

 

  • 2018のふなちのふらふらした軌跡

Alone journey in London...?? - 堕人間の備忘録

SuperCon'17 to PCK'17予選 に 参加した話 - hanahanahunachi’s diary

パソコン甲子園2017を通して味わった最後の青春の味☂ - hanahanahunachi’s diary

kosenハッカソン@函館に参加した記録🐢 - hanahanahunachi’s diary

ラーメンの画像が出てくるブログ - hanahanahunachi’s diary

Unit君感謝.

 

 

  • 結果を踏まえた考察

来年はコンテストにあまり出ないはずなので,人間らしい生活を心掛け,もっち有意義に知識を増やせていけたらいいです.

 

ぐーたらしてると1年はあっという間に過ぎていきます.

かなしいですね.(それはそう)

 

 

今年・・・は・・もっと・・成長・・・し・・・た・・い・・・です.

 

はい...

実はまだまだ続きます。

技術記事なのでAndroid強い人とか興味ある人は読んで,いろいろ鉞やら助言を投げてください.ふなちはかまってちゃんです.

🔗あとがき

hanahanahunachi.hatenablog.com

 

もうすぐクリスマス🎅

ひゃっは楽しんでやるぜ(((o(*゚▽゚*)o)))

 

3Sの人達は今日の数Bのテスト頑張って(私は勉強できてない)

 

あとどうでもいいんですが,これは

正しい羽毛布団と毛布の重ね方

です.今の季節覚えておくと便利でしょう.

f:id:hanahanahunachi:20171222000224p:plain

おわり.

 

明日はとぅらん先輩です!

楽しみです☆(*ノωノ)☆

 

 

 

 

一般人なら絶対に踏まないbugやerror[2]

今回のerrorは,

実行時に∂

「No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)」

ていうのです.

 

あとlayoutをbindingするところでもerrorが出てました。

だから最初「ま~たdetabinding系のerrorかこの~(੭ु´・ω・`)੭ु⁾⁾」って思ってました。が、いつものようにばぐは仕込んでない...しxmlのバグじゃない...

ググりました.

 

すると,

stackoverflow.comプロの解答がありましたね。

 

そう昨日の私,sdkのversionを27にあげてました.はい.

まさかのプロジェクトに設定してるsdkバージョンが26だったんですね.

 

とりあえずバージョンを上げましょう.

(私の様な初心者の人用にコード貼っときます.)

compileSdkVersion 27
defaultConfig {
applicationId "com.example.ほげほげ"
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

 

で他のdependenceに書いてるライブラリ達のversionも必要に応じて上げます.

 

実行します.

 

やったぜ.

f:id:hanahanahunachi:20171219012011j:plain

 

完.

 

kotlin not configuredの解決方法

kotlinのplaginをinstallしてるし、configure kotlin in projectもしてるのに、今までの平穏な毎日が嘘だったかのように突如現れる

「kotlin not configured」

に対するふなち流 解決方法を書きます。

 

kotlin の plaginをuninstallしてください。

f:id:hanahanahunachi:20171217005423p:plain

 

はい。サヨナラしましたか?

 

ではもう一度kotlinのplaginをinstallしなおしてください。

 

治ります。きっと。

 

※これなったの私だけと思ってたんですが違うようだったので、今更ですが解決方法書来ました。

 

この方法はあまりにも強引なので他の方法で解決した方がいい気がします. 

Kotlin not configured - Support - Kotlin Discussions

ここら辺やくに立ちそうです(?)

 

 

一般人なら絶対に踏まないbugやerror[1]

※環境はandroid studio with kotlinです。

今回のは問題は

android studioがめっちゃ使いずらくなった」

というものです。

 

下のスクリーンショットをご覧ください。

f:id:hanahanahunachi:20171217001938p:plain

普段android studioを使っている人なら分かると思いますが、なんとなく違和感を感じないでしょうか?

 

上記のコード、本来は(一部コード内容が違いますが)

f:id:hanahanahunachi:20171217002401p:plain

こんな感じで、勝手にimportしてくれますし、android.io.${class object}みたいなことならないですよ~( ◠‿◠ ) 

しかも、syntax errorが表示されないとか、(まあbuildしたらerrorは出るんですけどね)他にはjava classやkotlinのfile/classが作れない*1とかideaが壊れたのかと思いました。

 

これは失敗した方法なんですが

ideaのcachesを消したり、android studioをrestartしたり、コードをcloneしなおしたりとか、いろいろしました。全部無意味でした。

 

でこの問題?errorの解決方法は、

f:id:hanahanahunachi:20171217003053p:plain

 

このjavaっているファイル名をkotlinにリファクタリングしてたんですけど、これをjavaに戻してたら治りました。

 

しかも、その後もう一度java→kotlinにリファクタリングしたんですが、正常に動いて問題は発生しませんでした。

 

以前問題の部分のリファクタリングをした際に何かしら失敗したのかな?(分かる方いたらご教授お願い致します。)

 

 

<結論>

す ご い ‼  普通の人なら絶対に踏まないbugだ。

 

治って良かった(੭ु´・ω・`)੭ु⁾⁾ 

 

+追記+

これ、治ったと思ったらまた復活したり、不安定な状態が続いています。

何かご存知の方いましたらよろしくお願いします。

 

 

 

*1:

f:id:hanahanahunachi:20171217004514j:plain

ラーメンの画像が出てくるブログ

これは

adventar.org

の5日目の記事として書かれています。

 

 

おはようございます。

 

 

優柔不断なので,

 

何を書くか迷いました。

 

考えた末,

f:id:hanahanahunachi:20171201172222p:plain

 

ということで「今日の晩御飯」について書きたいと思います。

 

只今の時刻,”17:24”

 

なので当然夕飯はまだです。

 

お昼に大砲ラーメンを食べたので

 

夕飯はブロッコリーが食べたいです。

 

 

extra

 

おわり。

 

 

 

って嘘です。

 

本当のアドベントカレンダー用の記事はこちら☟

(タイトルが違いますが気にしないで下さい)

qiita.com

 

 

 

 

kosenハッカソン@函館に参加した記録🐢

今回は、高専から募集がかかってたハッカソン(珍しい)の「kosenハッカソン@函館」にゲドさんと一緒に参加してきました。

 

この大会で1番になると

Mashup Awards 2017

に招待されます。

 

zero先輩(辻先輩)から教えてもらったので参加できました。(ありがとうございます)

 

函館に”タダ”でいけるというわけで釣られたんですが、

   一切、観光できませんでした。

山奥のホテルに閉じ込められました。

 

あと1つ、

パソコン甲子園2017を通して味わった最後の青春の味☂ - hanahanahunachi’s diary

から帰ってきて5日後に出発だったのが気にかかりましたが、ハッカソン好きのふなちはそんなこと気にしないことにしました。

 

担当教員はtnk先生にお願いしました(一生懸命な若い先生だったのでちょっと申し訳なかったです)

 

1日目

 

福岡→東京

 

乗り換えの時

 

東京→函館

 

 

 函館駅に着いた

f:id:hanahanahunachi:20171114235134j:plain

 

 

お土産買う暇がこの先ない事を覚悟し先にお土産を入手した。

あと初めて見るお菓子も買ってみた。

 

旅館に行くバスの中で

 

旅館にて

 

まさかの夜からハッカソンスタート(予定詰め杉だろ...)

今回のハッカソンや 提供していただいてるAPIについての説明がありました。

 

夕ご飯は豪華でした。

 

 

その後は 

アイディアソンののち、チーム発表、チームでの開発スタートといった感じでした。

 

アイディアソンは今までのハッカソンの経験からしてみると、いつもよりあまりぱっとしたアイディアはなかったです...(多分普段こういうことをしてる人が少ないのかな既存のものが多かった印象でした)

 

チーム決めのほうは、みんなの投票で決まった上位8つのアイディアに人がそれぞれ割り当てられる感じでした。(たまげた)

 

私は、

「101ばんどうろ」

というアイディアのチームに割り当てられました。

 

ちなみに私のチームは程よく明るいくコミュ障の私でも話しやすい人たちが多かった上、8つのアイディアのなかでも一番ハッカソンらしいアイディアが割り当てられたチームだったので個人的に運が良かったです🐰

 

 

1日目は明日に向けて

アイディアの整理となんとなくの担当を決めて早め(3時に)寝た。

 

4時間眠れた(うん良き。)

 

 

※担当

ふなち&カブ:プログラマ

ウサミン:アプリで使用している絵の作成(手書き)

ヒラマサ:音楽のデーター作成

へーちゅー:スライド&プレゼン

 

 

 

2日目

朝飯AC。

普段少しAndroid触ってるとか言えないくらいゆっくりとした進捗を生やした。

 

カブさんにGPSの部分とボタンで渋さが切り替わる部分の実装をお願いして、

私はそれ以外を担当した。

 

最初、共同開発をするべく, カブさんにgitをインストールしてもらったり、gitの使いかたを(私のクソみたいな知識で)教えてたりしてうまくいっているかのように見えたが、githubとgitの認証がうまくリンクされなかったのか分からないけど、悲しいことにgit導入に失敗した。

ふなち「gitの勉強しなおします」

 

進捗は、

gradlewが死んだので復活させる→

昼飯

駅すぱあとさんのWebサービスAPIを叩くの~14:30→

カブさんのコードを合体~16:00→

二フクラ mobile backendのsdkを使って音楽をサーバーから取得するようにする→

音楽がホワイトノイズになって再生されるbugに見舞われる→

二フクラさんと辻先輩にデバックのアドバイスを貰ってhogehogeしたら音楽が再生されるようになる→

渋さによって音楽を変える処理とデーターベースの整理→

UIを作る→

UIを大幅に変えた関係でbug爆誕→

目の焦点が合わなくなり2時間椅子の上で倒れる~6:00→

bug fixed→

思い出リストの作成→

リストのところでbug→

bug・・・

発表する時間が来た。

 

うん。朝が来るのは早い。人生が険しい。

 

 

朝ごはんとオフトゥンと顔を合わせられないまま迎えた朝。

悲しいね。ほかのチームはみんな寝てたのにね。オフトゥンで寝たかったよね。

 

 

ここで夜のツイートを記念として残しておく。

 

右手の薬指についてはコード書くたびに痛みが増してて辛かった(11/15現在、だいぶ治りました)

 

発表会

どこのチームもハッカソン未経験者が多いというのにもかかわらず完成させて来ててすごかった

 

プレゼンはへーちゅーさんが成功させてくれた。

つよひ。

 

 

表彰式

 

企業賞2つももらえましたー!!ありがとうございます!

二フクラさんのsdkなどについてはすごく使いやすかったので今後のハッカソンでも使用させていただきたいです🐰

 

 

ゲドさんのとこも2つ企業賞もらってってすごかった(Tシャツ羨ましい。)

 

この後、すぐに解散でしたがその後話しかけてくださったガチプロの石川高専の方々ありがとうございました。

 

皆さんとお別れして帰り道~

空港で

 

全体的な感想

 

hack log にlogを残しました。

hacklog.jp

 

今度はいつものチームメンバーでハッカソンに出たいなぁ。

 

ありがとうございました!

またいつか会える日まで!!