hanahanahunachi’s diary

Android studio でお勉強してます。

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

Errorのlogは,必ずしも正しいわけではない.

 

それはそうですね.

今日のバグはこちら.

You need to use a Theme.AppCompat theme (or descendant) with this activity.

これに関してググる

You need to use a Theme.AppCompat theme (or descendant) with this activity. - Google 検索

 

まあ素晴らしいstack over flow, qiitaなどに書かれた解決法が見つかるのね.

 

私は,themeはAppCompatを継承しているのにしてたし,何でやろ...って思ったのね.

色々試してダメだったから結局怪しい所がないか探して,書き換えてたら解決したのね.原因は,dialog生成部分だったのね...(まじで関係ない)

ググってどうにかしようの前に,自分のコード見直してからにしような...(檄冷) 

 

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

私,ふなち!何処にでもいる18歳の高校3年生!

ダダダダダダダダ...(Buildが走っている)

うわぁぁ!

 

Error:error: resource android:attr/accessibilityFocusedDrawable is private.

...略...

failed linking file resources.

 

 

という事で上記のようなerrorに引っかかりました.

 

xml上のerror探したんですけど簡単には見つかりませんでした.

ググった.

stackoverflow.com

stackoverflow.com

考えられる原因は色々存在する様だ...

でよく見たら私のerrorは上記に記しているのだけじゃなくてresourceに原因があるって書いてあった.

Execution failed for task ':app:processDebugResources'.

で探してたら,errorの源を見つけた.

android:background="?android:attr/accessibilityFocusedDrawable¥ 

これのresourceを変えたら完治した.

 

drowable:android(?)に入っているresourceを使ったらこうなった.

d.hatena.ne.jp

上記事にある様にprivateなresourceがあるので気をつけるべきふなね(((o(*゚▽゚*)o)))

 

あと ”ポプテピピック” 見よう!

Google Home で遊んでみた(((o(*゚▽゚*)o)))

先日,プロラボ部で「お正月ハッカソン2018」が開催されました.

参加しました.楽しかったです.

 

クリスマスに,お父さんから google home mini を買っていただいたのもあり,

私は,5日くらいかけて「初夢Assistant」というものを作りました.

大雑把な内容はこちらです.

www.slideshare.net

 

簡単に文章で説明すると,①google home miniと一緒に「一富士二鷹三茄子」と言ったり,②夜中のレム睡眠時(1.5時間ごと)にgoogle home miniに隣で「一富士二鷹三茄子」と呟いてもらうことで,私たちの「良い初夢が見られる」ようになる確率が上がるというものです.

 

まず,①の機能の実装?方法はこんな感じです.

  1. Dialogflow  を使って「えいえい!」ってします.
  2. deviceでテストを走らせると,設定した通りに私の言葉に反応してくれます.
  3. やったー(((o(*゚▽゚*)o)))

もっと詳しく知りたいという人向けにもう少し詳しく書きます.

  1. Sign in - Google Accounts  で今から作業するためのプロジェクトを作成します.

  2. その後で Dialogflow を今作ったプロジェクトを開いて作業します.

  3. Intentってとこにactionを指定していきます.

    f:id:hanahanahunachi:20180118002618p:plain

    f:id:hanahanahunachi:20180118002635p:plain

  4. こんな感じで9割GUIでできるので,プログラミングできなくてもできちゃいます.
  5. さあ,出来上がったら,実際に動かして見ます.Itegrationのgoogle assistantって書いてあるところをポチッとします.すると下のスクリーンショット の様なダイアログが開くので...

    f:id:hanahanahunachi:20180118002704p:plain

  6. 右下の  TEST  ってとこ押すとテストができるところに移動します.

    f:id:hanahanahunachi:20180118002854p:plain

  7. を押して,「プロジェクト名 につないで」というと先ほど設定した通りにgoogle homeくんが応答してくれるようになります.(google home 君と自分の使うgoogle accountは紐ずけて置いてください.)

 

次に②の機能の実装方法はこんな感じです.

成功した方法

  1. google home notifer を Node.js の入った mac に installします. 
  2. 面倒な場合は

    GitHub - noelportugal/google-home-notifier: Send notifications to Google Home をcloneするといいかもしれません.

  3. 初期の設定については上のリポジトリを見てくださいふな.
  4. 次に,example.js とかと同じディレクトリに main.jsを作って下記を書きます.

    main.js for google home notifer in first-dream .初めてjavaScriptを書いたので多少の酷さは許して貰いたいです(_ _).。o○

  5. ~google-home-notifer $ node main.js とコマンドを叩きます.
  6. こういう感じになったら成功です.

  7. 次に Discover IFTTT and Applets - IFTTT  を使います.

  8. IFTTT で google assistant -> webhock (さっき立てたserverのurl)の trigget をセットします.
  9. google home で実際に試して見て動いたら成功です.

ごめんなさい.あまりにも大雑把な説明なので,本気で作りたいと思った方は,詳しくは下記の参考文献を参考にしてください.

 

実は最初は,iftttを使わず,firebaseのfunctionを使ってnode.js serverの方にrequestを投げようと試行錯誤しましたが,できませんでした.functionを使わないで,requestを投げるコードはかけたのですが,functionを使うと失敗してしまいました....今度時間を見つけ次第何故なのかちゃんと調べていきたいです。゚(゚´ω`゚)゚。

 

感想

今回,この作品を作った上で一番嬉しかったのはお母さんとお父さんに「すごいね!」と言ってもらえたことです.

私は普段,規模の小さいAndroid Appを作ったりしてるのですが,それらに関してはあまり興味を示してもらえてないので,開発期間は1週間未満だし簡単なことしかしてないとはいえ今回興味を示して貰えて嬉しかったです.(涙出そう)

 

読んでくださりありがとうございました(● ˃̶͈̀ロ˂̶͈́)੭ꠥ⁾⁾

 

*参考文献*

初めて挑戦した分野&言語でしたがこれらの記事のおかげでどうにかなりました.

ありがとうございます(((o(*゚▽゚*)o)))♡♡

qiita.com

qiita.com

qiita.com

 

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

実はこの記事は

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

 

はいごめんなさい.

 

前書きはこちらにあります.

さぼった-前書き- - hanahanahunachi’s diary

胸糞悪い内容なので読まないほうがいいかもしれないです.

 

では,本編スタートです

 

 

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

 

 

A.リンゴ一個分しか成長しない.

 

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

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

をどうぞ。

 

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

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

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

~結果発表~

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

 

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

  • プログラミング関係

github.com

 ↓

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しなおしてください。

 

治ります。きっと。

 

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