hunachi’s diary

Android studio でお勉強してます。

potatotips 49 (iOS/Android開発Tips共有会) に参加した.

こんばんは!

先日までインターンシップで東京に滞在していた ふなちです!(普段は福岡住み.)

そして,すいません.色々(インターンの最終発表と実際に作ってから公開しようとしたことも)あり,ブログの投稿が遅くなってしまいました(;_;)

 

3/13にメルカリさんで開催されたpotetotipsにAndoridブログ枠として参加させていただきました.
potatotips.connpass.com

自分が興味を持った,Android関係の発表について自分が思った事について書いていきます.

OK google, プロジェクトのbuildして」by satukies

speakerdeck.com

 

Google Homeを使ってapkファイル配布までやる.」という内容でした.

Dialog Flowの説明まで書いてあり,わかりやすく初心者にも優しいLTでした.

デモはしょうがないと思います...!(共感されてもって感じかもしれませんが,私も以前Google Home使ったアプリを発表する際,何故かデモで動いてくれませんでした...意味分からない.)

 

〜実践してみました!〜

 

が,情弱発揮してしまい,こけちゃいました.Oh...my.

 

GASで

https://www.bitrise.io/app/${project_id}/build/start.json のリクエストに失敗しました(エラー: 400)。サーバー応答の一部: {"status":"error","message":"Invalid API token for Bitrise hook","slug":"/${project_id}","service":null}

 と言うエラーが出てしまって,,,詰まってます(悲しい)

token,正しいと思うんだけどなぁ(自分のアカウントで作成したtokenでいいはず...)

dialog flowはうまくできてるはずなので,

もうちょっと頑張ってみます!完成するかなぁ(;_;)

 

ありがとうございます! 

ビルドをさせる事はできたはずです!怪しいところがあるので何とも言えないですが...(((o(*゚▽゚*)o)))(時間があったら動画を上げたりして見たい...です!)

 

ExoPlayerで音遊び bdaasuu

(3/20に更新しました) すいません!本当に申し訳ございません.

(違和感があるし,何で,あの音楽再生で波形が表示されていたLTがないの...?と自分で思ってたら間違えたスライド乗っけてました...ツイッターから探し出すのを失敗してました(;_;))

〜スライドを見つけることができませんでした😱〜

内容はExoPlayerは神!っていう内容のスライドでした.

波形で丁寧に説明して頂き,楽しくExoPlayerのすごさを学べました.

私自身,ハッカソン等でアプリを作る際,音楽再生には何を使おうか...と悩まされることが,多々ありました.

今までは,MediaPlayerとSoundPoolですかね(簡単なのしか触っていない!)

けどExoPlayerは違うんです!音程も音速も自由自在に変えれるんです...めっちゃ強い!ハッカソンでどんどん使っていきたいです!

今まで知らなくて損をしていました.教えてくださりとても感謝です.

本家ライブラリはこちら

github.com

 

shared element基本のき 〜パターンで見るshared element〜 by e10dokup

speakerdeck.com

 

使ったことない,今すぐ使いたい!

UIが最高になりそう(((o(*゚▽゚*)o)))

Listと絡んでくると凄く闇を見そうだけど...負けてられない!

春休み中にShared Element Transitionを実際に使ってみたいです.

 

ちなみにWikiはこちら

github.com

サンプルはこちら

github.com

他にも,強そうなブログ見つけた.

android.jlelse.eu

 

“Hello Flutter”の次におさえたいFlutterのポイント by Kenichi Kambara

www.slideshare.net

最近気になってるFlutterだ!

Dart分かりずらいな〜と思っていたので,Widgets Treeなど助かりました.

あと,build(Hot Reload)が早いのは凄く実感します!(Androidのbuild,重いのでポ.)

Dart(のUI描く部分)ってAnkoみたいだ.

Androidでのxml凄く難しい時があるので辛いのでありがたいです.

 

Spannable芸〜郵便番号編〜 by HiroYUKI Seto

speakerdeck.com

「最高の郵便番号入力欄」と言うキャッチフレーズが最高でした.

罠もたくさんあり,かなり大変そうです!が,やりがいがありそうだし,試したくなりました.

 

try! Flutter by Rui Kowase

スライドはこちらで,

docs.google.com

サンプルコードはこちら

github.com

Flutterの波が来てそう.

暖かい気持ちになるerrorとても共感しました!

私も何も考えずに動かした時暖かくなりました.

サンプルとてもありがたいです.

Flutter入門進めて行きたいです!

 

 

最後に,

六本木ヒルズに初めて訪れたのですが,東京味を凄く感じました.綺麗だった.

そして,受付の場所が分からずうろちょろして警備員のおじさんに,助けていただきました.

(不審者めいた行動してすいません!そして感謝!)

また,会場でのご飯や,ポテトチップスが普段食べられないようなものばかり&お洒落で素敵でした.

(もちろん,凄く美味しかったです!)

f:id:hanahanahunachi:20180317004539j:plain

f:id:hanahanahunachi:20180317004533j:plain

 

また,懇談会や休憩タイム時に色々な方々とお話でき嬉しかったし,モチベーションも上がりました.

メルカリのかたや,サイバーエージェントの方など沢山いらしていて,私,一時的に天国にいる気分でした.

それに加え女性エンジニアの方々とお話することができ,いい思い出になりました.

(尊敬すべき強い女性Androidエンジニアのむーむーさんとお会いでき,お話できたのは特に嬉しかったです.今度もし東京に滞在できる機会(お金ないのでインターン等で...)があったら次こそDroidGirlsに参加したいです(;_;).)

 

学生LTに参加した.

昨日初めて学生LTに参加してきました.

(Kotlinエバンジェリストの)長澤太郎さんが参加するという事だったので一度お会いしてみたいなと思い参加しました.(お話出来ずもサインも貰えず..で悲しかったのでコミュ力を鍛えて今度リベンジしたいです!)

 

年齢層はやはり大学生が多いのかなぁって感じでしたが,私より全然若そうな方もいて凄いなぁと思いました.私は今年度まで女子高生の年齢です!!!(某氏にJK言ったらダメでしょって言われました.)

 

 

トップバッターLTはネット回線関係のアルバイトに関するお話でした.

大変そう...!

私の知り合いが情報系の人ばかりだというのもありバイトと言えば,コーディングするもの.と思っていたがハード系寄りのバイトとなるとネットの契約バイトとかもあるんですね!LT聞いた限り大変そうだった^^; コミュニケーション能力が求められそう.

ネットの広告に関する専門的な知識を全く有していない自分にとってとても為になった.

行動ターゲティングや, サードパーティクッキー, スーパークッキー ,DSPSSP. DMP,コンバージョン率などなど,ふなちにとっては新しい用語ばかりだった.

自分のよくみるサイトの広告が出るとは言えど,私のPCで表示される広告はほとんどAdobeかJetBrainsの広告なので,その2社は広告にお金をかけてるんだなと思った(小声)

 

その後はスマートスピーカーを自作するLTでした.

スマートスピーカー自作すごい !

スマートスピーカーのアプリは作った事があるけど,部品買って自分でスマートスピーカーを自作するというのは,想像してなかったので凄いな.と思った.

自作するなら,Alexaが強いのですね_φ(・_・ ハードウェアの知識EPSなのでかなり頑張らないと険しそうですが一度作ってみたい!!

 

次は,Kotlinエバンジェリスト(!?)の長澤太郎さんのLTでした.

Kotlinの良さみを再確認できました.Better Java

私なんてkotlinからプログラミング始めたも同然なので,Kotlinには感謝してます.

ちなみにAndroid9(P)の記事にて,こういう言葉が書いてありました.

「Kotlin is a first-class language on Android, and if you haven't tried it yet, you should!」

素晴らしいですね.

Kotlinのお話はあっさり終わり,プログラマとして成功する為の秘訣話のようなとてもいいLTを聞かせていただきました.

このお話を聞いて.

「意識は高く,有言実行.選択肢は常に増やす.常に学び続ける.」

この4つを目標にプログラミングして行きたいなと思います!!

 

 

そして,,,

「緑のAndroidしてる女子高専生で,連想してもらえるくらいの人間になって見せます!」

 

おまけ

こちらが自分の立場を利用したツイートです.

 

 

私は後悔しました.

太郎さんいるし,自己紹介LT+αくらいのスライド作ってくればよかった.

実際地方住みなのでイベントに参加すること自体滅多に出来ないので...(;_;)

 

この後,起業している方のLTでした.

政治,選挙用のアプリを作りもっと若い人たちに政治に興味を持ちやすくしてもらおう.という物でした.

UI,UXもわかりやすく機能も質問箱など最近の流行りを取り入れたり,真面目なツイッターみたいな感じで使いやすそうだったので早く私の住んでいる地区にもこの制度が導入されないかなぁといった気持ちです.

[単語のメモ]

評価経済モデル

仮想通貨💰って年間150万まで取引等?が許可.仮想通貨って緩い.

政治家をお金で応援できるの凄.ICO(仮想通貨によって資金調達をする.)

 

最後に,スライドの作り方LTでした!

reveral.jsとmarkdownで書くというものでした.最近その形式のスライドを読み,このスライドどうやって作るんだろう?凄く便利だし見やすいなぁ,と思っていたので謎が解決されとても良かったです.

因みにホテルに帰ってから触ってみたのですが,次のページに移動する為の

---

や 

>>>   

 が有効にならず悲しかったです.(なんでだろう?)

 

その後はmitoさんによる飛び入りでLTでした.

みとった〜 話等ありました.ごめんなさいだいぶ昔から知ってるのにまだcloneしてない.この頃からKotlin書いてるの凄いなぁという感じですね

ツイッターTwitter Streaming APIが消えないんだったら私もTwitter Client作りたかった

 

 

全体の感想

ソフトウェア系少ないのかなぁって思いました.

初歩的な内容ですが,Archtectureのスライド持ってたので発表すれば良かった(;_;)

もしまたいつか,東京にこれる機会が与えられる&その時期に学生LTが開催されれば,また参加したいと思います.バーチャルLTへの参加は時間的な都合が合えば挑戦して見たいと思います.

運営の方々ありがとうございました.お疲れ様です.ピザ美味しかったです🍕🍕

 

 

 

 

一般人なら絶対に踏まない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

 

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

 

 

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

おわり.

 

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

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