hunachi’s diary

Android studio でお勉強してます。

自分用のめも#sort

 

このツイートに関する補足

https://research.preferred.jp/2011/10/tim-sort/

www.geeksforgeeks.org

 

ついでに,今日の数学で使ったレビチビタ記号について

レビチビタ記号とその性質 | 高校数学の美しい物語

 

 

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

はじめに

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

potatotips.connpass.com

に参加して来ました.

先月から続いて2回目のAndroidブログ枠での参加でした!

なんで九州の高専生が木曜の夜に東京にいるんだとかそう言うことは気にしないでください!実は久留米で午前中の1,2限の授業を授けてから来たんです..!

 

今回は記念すべき第50回目のpotatotipsだったのにも関わらず参加することが出来,嬉しく思います(((o(*゚▽゚*)o)))

第一回は 2013年なんですね!長い歴史だ...!

発表者の方には,今までの発表の振りえりもしている方が多く見られました.

 

※今回もただの個人の感想になってしまっているところや,スライドに書いてあるだろうことをつらつらと書いたもの多いですが,ご了承ください.

また,間違い等の発見した場合はTwitterなどで知らせてもらえると嬉しいです🙇‍♀️

 

発表

"Hello Flutter"の次におさえたいFlutterのポイントその3 by かんばらけんいち

www.slideshare.net

AppBuilder v.a 20170605-09:10

ちなみにその1とその2はこちら

Hello Flutterの次におさえたいFlutterのポイント

Hello Flutterの次におさえたいFlutterのポイントその2

Flutterのお話でした.

potatotipsでの発表は7回目!凄い!

初参加の第二回potatotipsの発表でも,クラスプラットフォームに関する発表をしていたそうです.

Androi,iOS,FirefoxOS,Tizen で動くアプリを一気に作れちゃうPhoneGap(Cordova)を使っていたそうです.

私は,後ろの2つのOSをよく知らなくて興味深かい!

FirefoxOSは2016/5に開発終了してるんですね. Tizanは実際に見たことないです.

(競技以外のプログラミング始めたのが2年弱前くらいなので許してほしい)

また,4つのOSでコードの共通化ってどれくらい出来てるんだろう?気になりました.

 

flutterで翻訳アプリを作っていて,近日公開予定らしいです.

私,英語が苦手なのでお世話になるかもしれません...!

 

今回は,UIについてのお話だそうです.

https 通信とかデータの永続化についてのお話しもいつかお聞きしたい!)

Widged Treeの構造は綺麗で分かりやすくて好きです.

Columnの中にどんどんViewの子を追加していけばいいんですね!

Conclution(Flutter向けのGUI Builder)のGoogle I/O 2018でのリリースしてくれたら嬉しいです!

www.ntt-tx.co.jp

recyclerview-selection by くぎみや

 

speakerdeck.com

 recyclerview-selectionに関するお話でした.

何週間か前に,くぎみやさんの記事を読んだ記憶が...!

recyclerview-selectionは,最近お世話になる機会が多くなってきた,android-ktxと同じ'androidx.'パッケージに含まれているそうです.

SelectionTracerを使うんですね(。 ・ω・))フムフム

いつも通りに,Listを作って,それに

  • stableId を使うように設定する.(ViewAdapterにsetHasStableId(true)と書く)
  •  SelectionTrackerのインスタンスを作る.(引数の詳しい説明はスライドとブログに書いてあるので割愛します.)
  • ( SelectionTrackerのインスタンス)で必要なItemDetailLookupを作る.

だけだそうです!

あとは,洗濯部分に色をつけたりなどしたい場合は,selectionTracerのインスタンスをAdapterで受け取り,よしなに実装すればいいようです.

この時,selectionTracerのインスタンスは,Adapterを生成後に設定してあげる必要があるので注意だそうです(※詳しくはブログを読むと良さそうです.)

 

いつも,くぎみやさんのブログにはお世話になっているので生でくぎみやさんの発表を聞けて嬉しかったです!

また,この発表の内容のブログ

inside.dmm.com

もとてもわかりやすく書いてあったので読むべきだと思います!

あと技術書典4にて釘宮さんの本買わせて頂きました!読むの楽しみです.

Glide 4 with Kotlin by Hiroyuki Kusu

speakerdeck.com

Glide4についてのお話でした.

私も(は)Glideにはいつもお世話になってます(感謝)

Glide4は,デフォルトでは"フェードなし"なのですね!

Glideは拡張できて,その関数を書く際には第一引数にRequestOptionを入れる事とNonNull & static であるということは守らないとダメだそうです(。 ・ω・))フムフム

そしてそれは拡張関数として書いたらいい感じになる!

DataBindingのListnerを拡張関数で書くのと同じノリなのでサクサクかけそうで良さげです!(こういう拡張関数の使い方超好きなので&折角教えて頂けたので,Glideへの拡張もやっていきたい(((o(*゚▽゚*)o))))

丸くくり抜くのcircleCrapとか,transrationは,すごく便利!

今まで私,

RequestOptions.circleCropTransform() 

って書いちゃってたんですが,4からはcircleCrap()があったんですね汗...お勉強になりました(> <。).

他に,プレースホルダーとフェードを同時に適用するとプレースホルダーが消えない問題の解決方法,助かります🙏

コードが冗長になってしまうのはしょうがないんですね.(悲しい)

DiffUtil and ListAdapter by くぼで

speakerdeck.com

DiffUtilとListAdpterを使おう!というお話でした.

DiffUtilはO(n)で差分を取ってくれて更新してくれるので最強!

ListAdpterは,RecyclerView.AdapterのDiffUtilを使ったものだそうです.

差分はbackground thread,結果の通知はmain threadで行ってくれるの強いです.

ListAdapterを使うとsubmitListするだけでいい&その時使うListはMutableListじゃないほうがいいってとこが腑に落ちてなかったんですが,Listのインスタンスが同じだったら何もしないって処理をしてたからなんですね,

スッキリしました(((o(*゚▽゚*)o)))

私自身,DiffUtil,listAdapterもだったけ...🤔インターンに行った際に社員さんから教えて頂いて使ったの思い出した&ちゃんと理解し直す良い機会になりました🙏

github.com

(用途は思いつかないが)Viewのキャプチャを撮ってみる by どくぴー

www.slideshare.net

Viewのキャプチャを撮ってみよう!というお話でした.

画面のキャプチャをとる方法には,

電源ボタン+ボリュームダウンボタンを押す,adbを叩く,AndroidStudioのLogcatを使うなどがあるそうです.

私は,最近は基本Logcatのボタンを使っています!便利!

では,画面の必要な部分だけ撮りたい,とかStatus barを除いた画面キャプチャが取りたい!などなど,Viewのキャプチャを撮りたい場合ってありますよね?と..

確かにです.私はViewのキャプチャを撮ることが出来るとは知らずに今までいちいち画像編集してました(> <。).

Viewだけのキャプチャを撮るには,View#setDrawingCacheEnavleをtrueにしてView#getDrawingCache()でViewのCashを作成(取得)し,それをBitmapに変換,(android-ktxを使っているんであれば,View#toBitmapだけで良いらしい)View#setDrawingCacheEnavleをfalseに戻すだけで良いんですね.

めっちゃ簡単だヾ(。>д<)シ 

その後,PDFとして利用したい場合は,PdfDocumentを使ってゴリゴリ実装すれば良いようです.

Canvas芸をする必要があるそう&重い(当たり前だけど非同期処理必須.)

ページを作る際には,PageInfo.Builder(ページの幅,ページの高さ,ページ番号).create()を実行する必要があるそうです.(PageInfoってのはページ情報を管理するクラス)

ちなみにページのサイズ指定時の単位はpoints(72points = 1 inch)で,ページの大きさを指定する際にはちょっと気合が必要そうです.(画面のサイズを測ったり等々)

画面の全体のキャプチャが欲しい際には,MediaProjection API(API21~)を使うといいそうです.

便利そうだしやってみたいと思ったのですが,アプリ側からViewのキャプチャを撮るというのは,どういう時に使うのでしょうか..?(パッと調べた感じだとメールに添付するとかがありましたが,もっと他の用途をしりたいです!)

Preference as a Service by izumin5210

speakerdeck.com

Preference..というお話でした.

potatotipsでの登壇は今回で8回目なんですね!凄いですオオォォォ(゚ロ゚*)

Preferenceの実装には色々な方法, SharedPreferenceや,Realm,FireBase Remote Config等を使う方法があるそうです.

私は,SharedPreferenceしか使ったことない...ヾ(。>д<)シ 

Preferenceは,サーバー側の挙動に影響しやすいものが多いので,ローカルだけで保存するというような方法を取ることは出来ない.

そこで,自前でサーバーを実装していた そうです!

でも,毎回自前でサーバーを書くのは辛く,

また他のアプリとの共有したい部分など出来た時にも困ったそうです.

そこで,Preference as a Server を作ったそうです.

やはり自前な理由は,マイクロサービスであり,内部の別のサービスからも参照したかった,データを外に出さずにすむ,設定値も簡単に追加変更ができ,自分たちが使いやすいカテゴライズ機能を付けれる.といった理由からだそうです.

他にはデバックする際にも有効活用できるらしく,素晴らしいと思いました!

今度,もし高専プログラミングコンテストの本戦出場が出来た暁にはこの方法を,試してみたいと思います!

技術力的にできるか不安ですが(> <。)

 消費型課金を導入する by もりぞー

Play Billing Library を使うと良いぞ!っていうお話でした.

課金が完了するまでの流れは,

  1. クライアント側からGoogleに課金したいよっていうのを伝える.
  2. その後,Googleからレシートを受け取る.
  3. サーバーにレシートの検証をしてもらう.ここでユーザーやアイテムの情報を送る.
  4. サーバーからGoogleに検証してもらう.
  5. その後クライアントはレシートの検証結果をもらう.
  6. 消費リクエストをクライアントからGoogleに送る.

という感じらしいです.(申し訳ないことに,うる覚えの状態で書いたので間違えてたら本当にすいません.)

色々引っかかりポイントがあるので気をつける.べきとの事でした.

課金システムのフローを丁寧に説明してくださってわかりやすかったです.

キーボードの切り替えをいい感じにしたい by わくわく

speakerdeck.com

キーボードの切替を良い感じにしたいというお話でした.

ただ単に,キーボード出ないものが表示されているかを判定してそれを表示させたり,非表示にさせたりするだけのコードだと,

バコン!ガコン!みたいになる.

これを解決する為に,Messengerを参考にしてみたそうです.

View構造のdumpをとりつつ,壊す勢いで調べたそうです!

経験不足の私は,今まで開発者モードのLayoutの境界を表示させたり等しかしたことなかったので,今度から他のアプリの良いところを盗みたいときはdumpも使っていきたいです.

結果,特別なCustom Viewなどは使っていない&裏にViewがあるようだったそうです.

そこで,キーボードを隠す際に高さが変わらないようにすれば良いのでは?という結論に至ったそうです.

そこで,ソフトウェアキーボードを隠す際にはソフトウェアキーボードの設定をWindowsManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE(キーボードと他のLayoutが被らないようにする)にし,逆に出す際には ,WindowsManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING(キーボードが出てきた際に高さを調節しないようにする)を設定すればいいそうです(。 ・ω・))フムフム

こうすることで,あのチカチカ,バコン,ガコンとしていたキーボードがチカチカ,バコン,ガコンとならずに隠れたり出てきたりするようになるんですね!

 

経験が浅いのもありキーボード周りを触ったことがなかったので,とてもお勉強になりました.

この発表を聞いた後からキーボードのチカチカが凄くきになるようになりました .

懇談会の時も凄く楽しそうに喋っていらっしゃったのが印象的でした.

adjustnothing

github.com

 

 ディープリンクを実装した by たかしぃ

speakerdeck.com

デープリンクに関するお話でした.

デープリンクを実装した流れは,

  1. 起動画面は透明のActivityにして
  2. その?Activity(schemeが追加されたもの)でURL schemeのデータを受け取る
  3. その後,データのQueryに応じて,どのActivityを表示させるかや,Activityをstuckに積むかなどの条件分岐をする.

という感じなのだそうです.

OAuth認証と同じ手順で行けば良さそうなので,デープリンクの実装はしたことがないのですがスッと理解できました.

また,Activityをstuckに積む操作をする場合の手順は,

ActivityLifecycleCallbackインターフェースを実装したクラスを作成し,他のActivityからの通知を受け取るようにして,onActivityCreatedやonDestoryを通った時点で他のActivity側から通知を送ると,現在起動しているActivity をstuckに良い感じにaddすることができる.

他に,ホーム画面をstuckに積んでから該当画面を開きたい場合はTaskStackBuilderを使えば良いようです.(※TskStuckBuilderを使う前のActivityは消去されるので注意が必要)

最後にdroid girlsの宣伝🎀

私も,参加しました!お勉強になりましたし,気軽にお話することができて楽しかったです! 

また先日,droid girlsのslackに参加させていたのですが,そこで飛び交っている様々な質問にあんざいさんや,強い人たちが丁寧に答えて下さったりしているなど,素晴らしい環境で驚きました.

最後に

 全体の感想なのですが,今回も初めて知ることなどが多くあり勉強になりました.

 

軽食もとても美味しかったです🍔🍟!(ポテトチップスが美味しそうに飾られていたのにも関わらず写真撮り忘れてしまってました.すいません(> <。))

f:id:hanahanahunachi:20180424000946j:plain

また,Wantedlyの社員さんともお話させていただいたのですが,フレンドリーで技術力も高い人が多く,凄く楽しそうでとても良い会社なんだなぁってことが伝わってきました.

 

今回の東京旅行?は,DroidGirls目的であり,せっかくなので以前楽しくお勉強させて頂いたpotatotipsにも参加しよう!という軽い気持ちで参加したのですが,実際に終わってみるととても充実したイベントとなり本当にきて良かったなぁと思えました.

 

長い長いブログですいません,お読みになって下さった方ありがとうございました!

時間があれば,DroidGirls参加記も書きたいと思います.

 

初めてのインターンシップ👧👒

こんにちは!

緑アイコンがアイデンティティふなち(Hunachi · GitHub)です.

 

はじめに

私は,3/5~3/16の間,チームラボ株式会社のインターンシップ*1Androidアプリ開発チーム)に参加させて頂いてました!

期間は2週間でした.

先に結論から言うと,めっちゃ楽しかったです!!

インターンシップに行くまでの流れ

インターンシップを知ったきっかけ

沖縄高専mito (@mitohato14) | Twitter さんにmitoさんがチームラボさんのインターンシップに参加する事になったという事を教えて頂いたのがきっかけです.

ちなみに,チームラボさんの事は高専プロコンなどのコンテストで見かけたり,実際にチームラボさんの展示を見に行ったりしていたので知っていました(๑・◡・๑)♡

応募した動機

  1. 春休みという長い時間を活用したかった.(インターンシップに行けなかったら車校に行こうと思ってました.)
  2. 東京までの交通費と宿泊費を全部負担してくれた.通った後,お給料も出るという事を聞いてより行きたくなった.
  3. 東京のイベント(勉強会)に参加したくてたまらなかった.
  4. KotlinでAndroid開発ができるという話を聞いた.(他は探してもなかなか無かった.)
  5. mitoさんが行けることになったということだったので, 私が挑戦できるギリギリのレベルかも知れないという謎の自信が生まれた.
  6. チームラボさんは私の学校では知られていて歴代のガチプロ先輩方もチームラボさんのインターンシップに参加していた.

選考の流れ

チームラボさんの公式サイトを見てもらえばいい話なのですが,私の感想も入れながら説明したいので書きます!

書類選考

何で行きたいのか〜とか,今まで何してきたのか〜というような内容でした.

他のインターンシップに応募した事がないので正確な事は言えませんが,一般的な内容だったと思います!

他には,自分のSNSのアカウントなどを書く事もできたので,

Github,このブログ, Twitter*2のurlを貼りました.

送信する瞬間,3年前の受験を思い出すくらい緊張しました.

 

〜三日後〜

メールが来ました.

どうにか合格だったようで,ほっとしました.

面接に向けての準備

面接までにweb上での適正テスト?を受けました.(これはメールでの指示)

また,面接で聞かれるかもしれない事を前日に書き出したりしました.

面接

時間は火曜日の13:00~でした.(授業*3があったのですが,自主休講*4させて頂きました.)

ちなみに面接の日程は1次審査の結果を送って頂いた4日後でした!

だいぶ前の話なので,聞かれた事を忘れましたヾ(。>д<)シ 💫

ただ,

「最近きになるアプリや,技術ある?」という質問に,

「Kodeinが気になってます!」というトンチンカンな返答をした事,

「何か質問はありますか?」という質問に,

「趣味を教えてください.」と「残業はありますか?」という

色々反省すべきな質問をしてしまった事は覚えています.

結果発表

なんか,参加できることになった!!

この後,初めて友達や家族にインターンシップに参加する事を伝えました.

(無駄なプライド)

その他

インターンシップに参加する数日前に顧問の先生の元を採用担当の方が訪れていた時がありました.(先生とは昔からの付き合いらしい?です.)

先生が頂いたお菓子を部活で頂いたのでみんなで食べました.美味しかったです.

 

ただ,その時に先生から今までにチームラボのインターンシップに参加した歴代の先輩方がいかに凄い人達だったかという話を淡々とされ,自分に自信の無かった私は「ごめんなさい.勝手に応募しました,ごめんなさい.学校の名前を傷つけたらごめんなさい.うう...(> <。)」という気持ちになってしまい滅入ってしまいました.

もう一人チームラボさんのバックエンドの方のインターンシップに参加するゲ・ドリンク (@gedorinku) | Twitterさんがいなかったら耐えられなかったかもしれないです.

 

しかし,インターンシップがとても不安になった反面,頑張らなくてはいけないという気持ちも持てたので良かったです.

インターンシップ初日

出社する前

前入りしていたのもあり,朝(8時に)起きれるか不安で前日は21時に寝ました.

寝坊はしませんでした.しかし緊張でガタガタしていたのが原因か,準備のスピードが遅すぎて,朝ごはんを食べることを失敗してしまいました.(WA)

出社

約束の時間から3分遅れて本社に到着.(TLE) 怒られませんでした.セーフだったみたいです(> <。)

採用担当の方に出迎えられ,オリエンテーションを行い,働く予定の場所に連れて行ってもらいました.

その後,メンターさんやチームの方に挨拶をして,早速,貸していただいたPCの環境構築をしました.

この日は,参加するプロジェクトがどんなものかの把握や,どういう設計でコードが書かれている(いく)かの確認,自分の担当箇所の確認などをしました.

1日を通して

初めての職場という環境での作業...

元々そこまで明るい人ではないのに,緊張で更に強張ってしまってました.

しかし,先にインターンシップに参加していたmitoさんがいらしたのと,メンターさんやスマホチームの方々とランチを食べに行ったりできたおかげで,退社時間までにはだいぶ緊張が和らいでいました.

3/6~3/16における,大雑把な活動内容

詳しいことは,多分社外秘なので言えません!(> <。)

前半

最初,任された部分が簡単な部分だったのでスイスイコードを書いていき...

たかったのですが,

  • 自己流でclass分けをするとまずいんじゃないか.
  • この書き方をしても大丈夫かな.
  • コードの書き方が汚いって思われたらどうしよう.

と行った不安が頭の中を駆け巡り,ダラダラとコードを書いてしまいました.

 

しかし,コードレビューを1度してもらってからは心を入れ替え,自分が思う最適な書き方でスイスイコードを書いていきました.

(この行為が正解だったのかわかりませんが...)

 

理由は,コードレビューをして頂くとこで,今まで気づけなかった実は危ないバグを生みやすくなる書き方や,もっと綺麗な可読性の高いコードを書くコツを学ぶことが出来る事を知ったからです.

また,コードレビューも攻撃的な内容は全くなくとても優しいものだったからですʚ♡ɞ

中盤

3~4日目,次の画面に取り組めるか?と思って他のですが,毎度お馴染みのバグや,使ったことのないライブラリ,に悩まされ始めます.

私を悩ませたもの一覧
  1. lottieというライブラリで一部だけをループさせるのに苦戦.
  2. 1を解決したと思ったら.ループさせる部分の画面遷移?(ViewPagerを使い表示させるFragmentの変更を行うだけ)で何度か行き来するとアプリが落ちるというバグが発見され,原因がわからず詰まる.
  3. Dagger2を使ったことがなかったので,(Fragment内で)Injectしてるのに,"not initialized"と言われ原因が分からず戸惑う.

全部解決しましたが,多少なりとも時間をかけてしまったので自分の未熟さを感じました.

解決方法
  1. setMinAndMaxFrame辺りを使えばいい.
  2. Listenerをremoveさせるのをやめるか,lottieのversionを最新にあげ忘れない.
  3. SupportFragmentでInjectが出来るようにApplicationで設定する.

バグ潰し楽しかったです(> <。)

後半

2つ目の任された部分を作り終えれるか不安に...

1つ目の部分より実装難易度も高く,特にxmlで長い戦いをする羽目になったからです.

CollapsingToolbarLayoutを使ったり,List処理を書いたり(これはそこまで重くないが)しました.xmlのバグが,とてもとても辛かった.

デザイナーさんの意向が分からず,質問する毎日
  • デザイナーさんが居てきちんとしたデザインが決まって居るアプリの開発は初めだったので,分からないことが多かったから.
  • デザイナーさんの本当の意向が分からず,「ここのアニメーションは静止画を見る限りこんな感じかな〜?」と実装していたら,違うという事が会議で判明しコードを消す事になった時,ちょっと悲しかったから.

というのが理由でした.

質問しまくったため嫌われてないか今でも心配です.(ごめんなさい.)

質問したおかげで学べたことも多かったので,質問したことは後悔してないです!

xmlでのバグに3日悩まされる

CollapsingToolbarLayoutのtitleが表示されないくて苦戦しました.

主な原因は,CollapsingToolbarLayout の content である Toolbar の layout_height を定数にしてなかったからです...社員さんやメンターさんを巻き込んでしまったので本当に申し訳ないです.ごめんなさい.

最終日の退社する1時間前に気づけてよかった.

 

また,後半に入ってからは,逆にチームの方(社員さん)のコードレビューをするよう心がけました.知識がないのと,コードレビューの経験がないのダブルパンチでとても難しかったです.

ただ,コードを読むだけでかなり勉強になりましたヾ(。>д<)シ 

結局コードを読んで直すべき部分は見つからずLGTMを送る事しかしてません.

最終発表

最終日の前日,最終発表がありました.

インターンシップで行った内容や感想を,10人前後のチームラボの方々に見ていただくというイベントです.

とても緊張しましたが,私の精一杯の発表はできたはずです!

質問もたくさんしていただき,嬉しかったです.(返答があまり上手ではなくてすいませんでした(> <。))

 

インターンシップを終えて

学べた事

  • チーム開発をうまく進める為のコツ
  • 自分の知らなかった設計思想
  • コミュニケーションの大切さ
  • CIツールの大切さ
  • 今まで使ったことのないライブラリ達に対する知識
  • (チームラボはラフな方だそうですが)職場とはどういう雰囲気なのか
  • 実際のエンジニアの仕事はどういうものなのか

感想

楽しかった!

2週間がとても短く感じられました.もっと長く働きたかった!!

 

メンターさんや,コードレビューをしていただいた方,同じプロジェクトの方,採用担当の方,一緒にランチを食べに行ってくれた方々など私と関わってくださった方々が,とても優しかったです.

 

特に,メンターさんには話しかけ過ぎたかも,他の仕事の邪魔をしたかもしれないと後悔するぐらい質問などたくさん会話をさせていただきました.それにも関わらず優しく丁寧に応答してくださり,ふなち...とても嬉しかったです.本当にありがとうございます.

 

一緒に開発してくださった某社員さんも丁寧なコードレビューをしてくださったり,一緒にバグを潰す方法を考えて頂き,ありがとうございます.とても感謝しています.同じくらい綺麗なコードがかけるよう精進してまたいつか,出直してきます.

 

また,私がインターンシップを行ったチーム(部署?)のオフィスは雰囲気がよく,椅子もPCもモニタもいい感じで,快適な作業環境でした.(いつも実家では床に座って作業しているからかもですが!)

ただ,Android Studioくんが重過ぎて発狂しそうなときがありましたが,これはしょうがないと思うのでしょうがないです.

 

最初は,休日に給料が発生している感覚でしたが,仕事でプログラムを書く方がSNSを閉じるので集中できたし,デザインがしっかりしているものを作ることができたのでやりがいを凄く感じることが出来,一人でアプリを作っている時とは違う楽しさ,嬉しさを感じることが出来ました.

 

また,「実際にはやれてないけど,〜〜も学んでみたいです.」という話をしたらできる限りの事をしていただけたりしたのもあり,感謝の気持ちでいっぱいです.

ここまでしてくださる会社も珍しいんではないか?と思うくらいでした.

 

最終日,

チームリーダーの方々や採用担当の方から,

「是非またインターンやバイトで来てね!」

と言って頂き,とても嬉しかったです.

別に普通のことなのかもしれませんが,

今まで一人で開発したり,部活でチーム開発している時に,自分って本当に必要な人間なのだろうか...?と自問自答することばかりで,自信を持てずにいた私にとってはとても有難く,多少なりとも自信を持つことが出来た言葉でした.

また,採用担当さんとFacebookで友達になることが出来て嬉しかったです!(※下心なんてないですよ!)

 

他の会社のインターンシップにも参加してみたいという気持ちもあるのですが,また夏に時間を確保できそうだったら,チームラボさんにインターンシップさせていただけるかお願いしてみようと思います.

 

これからも,今回のインターンシップでお世話になった方々と勝手に特定させて頂いたtwitter等でたまにお話できたら嬉しいです!

 

この記事に関連する記事

hanahanahunachi.hatenablog.com

hanahanahunachi.hatenablog.com

あと,

yj-meetup.connpass.com

にも参加させて頂きました!!(設計の話,お勉強になりました.)

おまけ

今回のインターンシップ期間中(前後の土日を含む)に取ったご飯の写真を見納め下さい.

f:id:hanahanahunachi:20180320213859j:plain

 

f:id:hanahanahunachi:20180320213907j:plainf:id:hanahanahunachi:20180320213923j:plain

f:id:hanahanahunachi:20180320214004j:plain

f:id:hanahanahunachi:20180320214058j:plain

f:id:hanahanahunachi:20180320214112j:plain

f:id:hanahanahunachi:20180320214117j:plain

f:id:hanahanahunachi:20180320214126j:plain

f:id:hanahanahunachi:20180320214151j:plain

f:id:hanahanahunachi:20180320214155j:plain

f:id:hanahanahunachi:20180320214201j:plainf:id:hanahanahunachi:20180320214213j:plain

f:id:hanahanahunachi:20180320214217j:plain

f:id:hanahanahunachi:20180320214221j:plain

f:id:hanahanahunachi:20180320214331j:plain

f:id:hanahanahunachi:20180320215005j:plain

 

f:id:hanahanahunachi:20180320214527j:plain

 

f:id:hanahanahunachi:20180320214433j:plain

 

f:id:hanahanahunachi:20180320214225j:plain

 

 

f:id:hanahanahunachi:20180320214233j:plain

f:id:hanahanahunachi:20180320214239j:plain

f:id:hanahanahunachi:20180320215126j:plain

f:id:hanahanahunachi:20180320215223j:plain

f:id:hanahanahunachi:20180320215227j:plain

f:id:hanahanahunachi:20180320215315j:plain

f:id:hanahanahunachi:20180320215257j:plain

f:id:hanahanahunachi:20180320215326j:plain

f:id:hanahanahunachi:20180320215331j:plain

f:id:hanahanahunachi:20180320215335j:plain

f:id:hanahanahunachi:20180320215345j:plain

f:id:hanahanahunachi:20180320215409j:plain

f:id:hanahanahunachi:20180320215419j:plain

f:id:hanahanahunachi:20180320215428j:plain

f:id:hanahanahunachi:20180320215437j:plain

f:id:hanahanahunachi:20180320215440j:plain

f:id:hanahanahunachi:20180320215446j:plain

f:id:hanahanahunachi:20180320215459j:plain

f:id:hanahanahunachi:20180320215507j:plain

f:id:hanahanahunachi:20180320215512j:plain

f:id:hanahanahunachi:20180320215531j:plain

f:id:hanahanahunachi:20180320215539j:plain

f:id:hanahanahunachi:20180320215555j:plain

f:id:hanahanahunachi:20180320215601j:plain

f:id:hanahanahunachi:20180320215608j:plain

f:id:hanahanahunachi:20180320215610j:plain

f:id:hanahanahunachi:20180320215625j:plain

f:id:hanahanahunachi:20180320215629j:plain

f:id:hanahanahunachi:20180320215633j:plain

f:id:hanahanahunachi:20180320215653j:plain

f:id:hanahanahunachi:20180320215643j:plain

 

f:id:hanahanahunachi:20180320215703j:plain

f:id:hanahanahunachi:20180320215708j:plain

その他思い出の写真

f:id:hanahanahunachi:20180320215827j:plain

*1: internship.team-lab.com

*2:twitter.com

*3:Java2の授業.実質Javaの歴史の授業??自分のPCを触るのも許可?されていた授業だったので忙しい時は「私は実質Javaを書いている」と言いながらKotlinを書いていた.

*4:何かしら理由があって自主的に授業をブッチする行為

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生成部分だったのね...(まじで関係ない)

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