SPAJAM2018本戦に参加して最優秀賞をいただきました

お久しぶりです. 全く手をつけていなかったブログでしたが書くと宣言してしまったので書いていきます.もうすでにチームの仲間が上げていると思うので私(Androidエンジニア)視点で感想やら何を考えていたかを備忘録として残していきます.

イデアソン開始

当日のアイデアソン直前,予選と同じくその場で本戦のテーマが公開されました. 公開されたテーマは”モビリティ”. 車好きの私としてはうまくいいアイデアをひねり出したいところでした.

f:id:m1zyuk1:20180711220916j:plain

イデアソンをやって見て

全体で行ったアイデアソンを終えての感想は,これはやばいな…でした. 何よりもまずモビリティという言葉の解釈が非常に難しかったこと,そしてその解釈を元にどういった問題をスマートフォンアプリで解決するのか.相当しっかりまとめないと進まないなと戦々恐々です.

イデアがまとまるまで

イデアソンで出たアイデアを持ち帰りチーム内での議論をしました. この時点で16時だったはずなのですが,アイデアが決まったのは26時頃でした. 時間にして10時間もかかってしまいました.それもそのはずで,アイデアを決めるまでにチームではこんなことを考えていました.

実際にアイデアが決まるまでに考えたこと

イデアが決まるまでに様々な迷走をしました. 例えばこんなことです.

モビリティとは

そもそもモビリティって何だろう?ということを考えました. チームとしてモビリティという言葉の定義を決める必要があったからです. 移動性・流動性などwikiを見るとたくさんの意味が出てきましたが,どれもしっくりこなかったのを覚えています.モビリティ=移動性・移動する物と定義しこの議論は一度終了しました.この後移動するための物や移動する物の羅列を行い, それらについて課題を考えていくのですが,ここをきっちり定め切れていなかったが故に迷宮に迷い込んでしまった感もありました.

History of Mobility

移動するための物を羅列した際にそれらをどのように分類するかを考えることがありました. その中の1つの分類が歴史の流れによる分類でした. 馬や手押し車から始まり,車,飛行機,船,電車, 果てにはUFOとどのような理由でそれぞれが進化していったかを羅列したわけです.どのような移動するためのものがあるかの羅列にはなりましたがそこから課題に繋がるわけでもなく議論はさらに迷走していきました.

f:id:m1zyuk1:20180711223800j:plain

最終的にアイデアが決まった瞬間

時刻は24時をまわり日付が変わった頃,まだアイデアは決まっていませんでした.そろそろアイデアがバシッと決まらなかった際のPlanBを始めなくてはならないということでAndroid実装の相方が次善策になりそうなアプリの技術調査に入り, 残りの4人でもう1度最初からブレストしてダメだったら次善策を取ろうという判断になりました.最後のブレストでは制限を今までとは少し変えて行うことで何とかいいアイデアが出ないかという賭けに出たのです.

最後のブレスト

最後のブレストではこのような形式で行いました.

  • まず移動するための物を羅列する
  • その移動手段を使用する際にどういう人がどのように困るのか

これを4人で絞り出した結果として,今回本戦に提出した”Wheel Free!”は生まれました.

f:id:m1zyuk1:20180711223729j:plain

実装の始まり

イデアが決まり26時, ようやくパソコンに初めて触れてまどやの実装は始まりました. 今回は予選と変わりAndroidの担当になったので,久しぶりの共同作業です.

実装の分担

相方がUI,私がデータ構造とネットワーク周りとなりました. デザインやサーバ側の技術チェックが終わり次第Android側のネットワークの実装, その後UIの実装というスケジュールになったのですでに眠気の限界にきていた相方に仮眠を取ってもらい,自分も通信周りのクラス定義のみを行い仮眠をとりました. この時点で朝4時だったので言葉通り意識を失ったのを覚えています.

仮眠から目覚めて

仮眠から目覚めて一番に発生したのは共有不足による方向性のズレです.機能の一部をサーバに置くと思い込んで実装していた私と,クライアント側で処理後に通信を行うと思い込んでいたサーバ担当で行き違いが起こっていました. これによって寝起きの私はだいぶ精神をヤラれました.

UIへの加勢

問題を解消し通信周りの実装を何とか終えました. 基本的にフォームの入力を受けて動作するタイプだったのとサーバ側にリクエストを送信するごとにAPIの都合でお金が飛んでいく状態となってしまい,ネットワーク部分のテストは結合テスト時に行うという危ない判断をします. (本当に動いてよかった…) メイン以外のUI関連の実装をチマチマしながら気がつけば制限時間, アプリを見ると無事思惑通り動いているという非常にギリギリの状態で開発は終わりました.最終的にはアドレナリンのせいか眠気は無くなったものの頭の回りがだいぶおかしくなってしまい, 通常状態なら絶対にやらないようなミスが頻発するという状況でした.小さいバグをちょこちょこ仕組んでしまっていたので解消してもらっていた相方には頭が上がりません.

最終的に出来上がったのが車椅子の方の電車予約を助ける”Wheel Free!”です. f:id:m1zyuk1:20180711222326j:plain

発表を終えて

発表を終えてまっていたのは最高のご飯と最高の温泉, そしてやりきったという達成感でした. 開発中は温泉をあまり有効に使えていなかったのが悔やまれますが(もちろん温泉の中でもブレストはしていました!)終わった後の温泉はまた格別で, 他のチームの方と風呂の中で感想だったり意見交換をしたりとあまり味わったことのないコミュニケーションを行えました. 話しかけるのが下手くそというコミュ障を発揮していましたが絡んでくれた方,声をかけていただいてありがとうございました!

食事と温泉を終えた後は相方とプログラミングかるたをしたり地下アイドルの方の即興ライブを見たりして楽しんでいました. レベルの高いハッカソンなだけあってプログラミングかるたに食いついてくる方がいて驚きながらも楽しく遊べてよかったです.

 

ハッカソンを完走した感想

今までのハッカソンの中で一番と言っていいほど過酷であると同時に一番達成感が大きいものでした. 今回のアイデアはチームメンバーの一人の友人の実体験から生まれたものだったのですが,チーム全員が解決したい課題を明確に意識でき, そのためのアプリを開発できたからこそアプリが完成したと思っています. 正直な話,後ちょっとでも早く次善策に切り替えていたら今回の勝利はなかったと思うので回らない頭で絞り出し続けて粘った甲斐がありました. この後にはシリコンバレーが待っているわけですが,私はまだ現実感がなかったりします. また作成したアプリも完全に一番いい状態かというとまだまだ改善の余地があるとも思っています. アプリの改善と今後についてきっちり考えていかなくてはならないですね. ブログを書いている今も何となく疲れが残っていますが,勲章だと思って日常に戻ろうと思います.

( ˘ω˘)o0O(いただいた表彰状は自慢しなくては...) f:id:m1zyuk1:20180711222929j:plain

Microsoft Student Partners AdventCalendar 1日目 MSPとは?

これは Microsoft Student Partners アドベントカレンダーの一日目の記事です。

はじめに

閑古鳥が鳴きそうな空き具合ですが古参の一人として頑張って埋めていきますよ! はじめましての方ははじめまして! Twitterでおなじみの皆さんはこんにちは、 みずね(@m1zyuk1)です. 初日となる今日は折角なのでMSPという団体とは何なのかについて書いていこうと思います.

続きを読む

Dive into mixi Group 2017 Summer に参加させて頂きました

インターン参加しました

8月1日から一ヶ月間, mixiさんの長期就業型インターンに参加させていただきました! 今回参加したインターンである Dive into mixi Group ではグループ内の様々なサービスのうちの1つに就業するような形のインターンを行いました. 私はその中でも株式会社Diverseにお邪魔しました!

diverse-inc.co.jp

お邪魔した会社 “Diverse”

今回お邪魔した株式会社Diverseは結婚支援を中心とした様々なプラットフォームを提供している会社で,私はその中のサービスの1つである"YYC"というマッチングサービスの事業部に配属されました.

www.yyc.co.jp

YYCとは

15年以上も続くマッチングサービスです. WebとAndroid,iOSでサービスが提供されています.私はその中でもAndroidのクライアント開発に携わることになりました.

参加した理由

今回のインターンで私が欲しかった知見は “企業に置けるチーム開発の体験"と"Kotlin,Rxを使用したAndroidの開発経験"です. また,色々な会社の風土であったり,雰囲気を知りたいといった思惑もありました. そんな中出会ったのがmixiインターンだったわけです.

インターンでやったこと

Androidでの開発業務全般を体験させていただきました. 実際に新規機能を実装したり,バグを発見しそれを修正したりと実務で行うことを実際に行うような1ヶ月になりました.

環境について

オフィス

  • IT企業系あるあるなドリンク飲み放題でした
  • 机の高さが電動で自由に変えられるのでスタンディングデスクみたいにして作業することもできます
  • オフィス自体が非常にきれいでおしゃれでした

メンターさん

  • わからないことを聞いたり,実装について相談したりすると親身に教えていただけました

参加して学べた気がすること

  • KotlinとRx
  • チーム開発の難しさ
  • テストの大事さ

まとめ

学校等と違い実務に則したインターンでは実際の業務で行われる事を学生の内に体験することが出来るので非常に良い経験を得られると思います. また,やっていてわからないことがあった時に遠慮せずに聞くことが出来る環境というのは非常に恵まれていると思うので得られる物も多いはずです! 皆さんも是非参加してみては!

追伸

お世話になった皆様,本当にありがとうございました!
ブログ遅くなってすみません.

Xamarin Dev Dayに参加してきました!

Xamarin Dev Days Tokyo

品川の日本マイクロソフトで開催されたXamarin Dev Dayに参加してきました!

素晴らしいセッションとハンズオンだったので備忘録も兼ねて書いておきます!

 

当日のAgenda

当日はこんなスケジュールでした.

時間 セッション内容
10:30 - 11:10  Xamarin Overview @chomadoさん
11:20 - 12:00  Xamarin Forms @nuits_jpさん
12:10 - 12:50  Xamarin + Azure @iseebiさん
14:00 - 17:00  Xamarinハンズオン @ytabuchiさん

 

 

セッション1:ちょまどさん 「Xamarin Overview」

最初のセッションは日本マイクロソフトのちょまどさんによるXamarinの紹介でした.

Xamarinについて簡単に紹介しつつ難しい部分については強い人を召喚しながら面白く解説してくれました!

 

セッション2:nuitsさん 「Xamarin.Forms」

次のセッションはnuitsさんによるXamarin.Formsについての解説でした.

Forms自体は私も知っていたのですが,わかりやすくかつ詳しい解説で非常に色々な気づきをいただけました.

特にコンポーネントの拡張についてやPluginについては全く知らなかったので早速使ってみたいと思います!

 

セッション3:いせさん 「Xamarin + Azure 」

セッションの最後はいせさんによるXamarinとAzureの連携についての解説でした.

Azureは普段主にWebAppsを使っていたのですが,Mobile Appsで何が出来るのかよくわかってなかったので非常に良い情報をいただきました.

Notification周りは普通に実装すると非常に面倒臭いことになりがちですが簡単に出来るそうなので今度チェックしてみようと思います.

 

ハンズオン:田淵さん「Xamrin Dev Days HandsOn」

最後は田淵さんのリードでこのサイトのハンズオンを行いました. MVVMを用いたXamarinアプリを作りながらXamarinでのコーディングに少しずつ慣れていくような内容でした.

ハンズオンの最後に宿題があったのでそれも楽しく出来ました! せっかくなので他のCognitive Serviceも組み込んでみようと思います!

 

Xamarinはいいぞ

もともと何回もスタートするのに挫折してしまったXamarinでしたが今回は環境構築がうまくいき無事スタートをきる事ができました! Xamarinおじさん目指して今日から頑張ります!

 

※XamarinDevDaysのスポンサーのフロッグポット様にファミコンのクラシックミニをいただきました!

C#とXamarinとフロッキーはいいぞ!