読者です 読者をやめる 読者になる 読者になる

名前はまだない。

プログラミングのことや趣味のことに関して綴ります。

【インターン三社目】Androidマスターへの道!mixiへの挑戦【1Month】

インターン

待ちに待ったAndroid開発インターン

三社目は株式会社mixiに行ってきました!
モンストで話題の会社ですが、今回私がお世話になったのはSNSミクシィのモバイル事業部(Android)でした。

これまで個人的にAndroidアプリをいくつかリリースしたり、お仕事でアプリ開発をしていたので
少しは自信を持って挑めたインターンでした(笑)

今回の記事では、そんなmixiさんで学んできたことを綴っていきます。

やったこと

SNSミクシィAndroidアプリ開発に携わらせていただきました。

コミュニティ!

コミュニティツールにはSlackを使用。
初めて扱いましたが、エンジニアの間で流行る理由が分かった気がしました(笑)
Botをうまく活用してましたよ!
二段階認証は忘れずにやっておきましょう。

実装!!

自分が最初に行った作業はというと小さなバグfixから。
順調に修正していき、commit!
masterまでPRが通りました!
最初masterに自分のコードがマージされた時は身震いとともに、やってやったぜという気持ちが湧いてきました。

順調か!?と思いきや・・・

最初のタスクを終え、次はA/Bテストが行われる部分の実装を行いました。
ある導線を画面内に埋め込むところを実装したのですが、ここがまた以外に手間で時間が取られましたね(汗)

ListViewを使用したレイアウトにヘッダーを突っ込む予定だったのですが、この背景に9-patchが使用されていて
ヘッダーを突っ込むとき、メインコンテンツ領域との間で変な線が入ってしまう問題が発生。
色々と解決策を模索。。
9-patchで作る背景をListViewのメインコンテンツ部分に設置するものと
ヘッダー部分に設置するもの2種類用意して試したり、
そもそもListViewのヘッダーではなく、その上に新しくViewを設置して、スクロール量をみて高さ調整してあげたり。。

結局どちらも上手くいかずorz

万策尽きたーーー!!!!111!1・・・と思ったら?!

最後の名案として、背景となるLayoutと実際のListViewを別々で用意して、重ねて表示さてあげるという寸法。
そしてListViewのスクロール量に応じて、背景となるLayout部分の高さを調節してあげる作戦を決行!

メンターの方の助言&手助けにより無事実装完了!
ほっと一安心。

勉強会!!!

Android開発者が集まってお茶会と称した勉強会にも参加させていただきました!
Androidのコードネームにもなっているお菓子たちを食べながら、カンファレンスでの出来事や
他の勉強会で発表されたスライドを流しながら参加者が紹介する等、積極的な技術共有を行っていました!

dagger2が自動生成するコードを解析してみた。みたいなことやってたのですが、
正直、話の内容の50%理解できたか出来てないかくらいの次元でした。
何言ってるか分かるんだけど、深い意味はわからない間隔で話を聞いていました。
これから深掘りしていかねば!!

学んだこと

  • Jenkins CI(継続的インテグレーション)のひとつ。
    Java(Apache)で動いてる。
    GitHub等と連携することで真価を発揮する。
    Jenkinsおじさん。

  • uiautomator
    AndroidSDK標準で搭載されている何でもテスト屋さん。
    これをマスターすればUIテストは完璧(適当)

  • 9-patch
    Androidの拡大縮小可能なグラフィック形式。
    UIパーツとしてよく使われる。

  • git-flow
    master,develop,feature,work,hot-fix,release...
    Gitのブランチを活かしたフローのひとつ。
    この他にはGitHub-flowが挙げられる。
    ここで大体把握できるかも

  • バージョンアップが高速(2週間間隔でリリース)
    びっくり。

  • A/Bテスト
    AとBの2パターンを用意し、どちらがより効果的かを実験する手法。

教訓

開発者オプションで「Activityを保持しない」をONにしていた場合の悪夢
ライフサイクル上で無条件にstartActivityForResultしてはいけない

最後に

Androidに関する知見が増えました!
未だ未着手なライブラリに手を出すきっかけにも!(Retrofit, RxAndroid, OkHttp, dagger等)
そして、Androidの楽しさを実感できたインターンになりました!
もっとAndroidについて知りたい!最高のアプリを開発できるようになりたい!
と背中を押してくれるような感覚がありました。

勉強会にも参加させて頂いて、モダンな技術に触れる事もでき、いい刺激に!
私の所属先でも勉強会を頻繁に開いていこうと思っている今日このごろ・・・

そしてそして!お世話になった部署の方々やメンターの方、人事の方とお食事に行けたこともとてもプラスでした!
長期インターンでは毎回こういったお食事会を催してくださるのですが、ホントに毎回感謝感謝です!
その場で色んな話を聞けたり、意外な一面が伺えたりと有意義な時間を過ごすことができました。

気づけばmixiでのインターンから1ヶ月以上経ってると知り、時の流れって早いなと思いました(笑)

この記事を見てる皆さん!モンストだけではなく、SNSmixi』もよろしくお願いします!
実際に中を覗いてみて分かったことが沢山有るのですが、色々考えられている素晴らしいツールだと思います。

Android版をDLしてもらえれば、私が実装した機能に触れることが出来るかも?!
さぁ!今すぐGoogle Playへ!(笑)

mixi.co.jp