😊

2023年新卒インターンシップ Androidアプリ編

2023/06/20に公開

はじめに

初めまして!株式会社ココナラの第1期新卒メンバーとして4月からジョインしました、Falcon(ファルコン)と申します。
本記事では、入社に先立ち1月末から3月末にかけて参加した、内定者インターンシップについて書いていきたいと思います。

自己紹介

私は2023年1月から3月末までは、内定者インターンシップとしてアプリ開発グループ・Androidチームに所属し、4月からは正式にココナラ新卒一期生としてジョインしました。

高校・大学の7年間を「早押しクイズ」に捧げてしまったちょっとヘンな人です。私の青春は傾向と対策によって彩られています。大学では経営学を専攻する傍ら、Webサイトの制作代行などを請け負うエンジニアとしてお仕事をしていました。

ココナラへの入社が決まり、これまで22年間生活していた青森から大都会・東京にやってきました。 りんご畑と山林が広がる故郷とはあまりにも環境が違いすぎて、まるで異世界転生した主人公のような感覚で日々生きております。

入社した理由

私は、「ココナラを世界中の人が当たり前のように使うサービスにしたい」と考え、ココナラに入社しました。

大学2年の頃から「オーダーに合わせて謎解きを作ります」というサービスをココナラで出品し、 謎解きイベントの主催者や忘年会の幹事の方から頂いたご依頼にぴったりな問題を制作・販売していました。
ココナラで「プロの謎解き作家」として仕事を請け、お客様から感謝の評価コメントをいただく中で、だんだんと自分の人生に胸を張れるようになっていきました。
私はこの経験から、「より多くの人が自分の得意で誰かの役に立ち、自分の人生を肯定できる世の中にしたい」と考えるようになり、それを現実のものにするべくココナラに入社しました。

インターンシップについて

概要

さて、ここからは私が参加したインターンシップについて記述していきます。 このインターンシップは1月中旬から3月末までの期間に行われ、 自分のスケジュールにあわせて頻度を選択することができました。

私は月・火・木の週3日、10:00-19:00のフルタイムで参加することにしました。

活動内容

ここからは、前項の目標設定を踏まえて、実際に行った活動を紹介します。

目標設定

先述の通り、非常に大きな志を持ってココナラに入社した私ですが、在学中はフロントエンド周りの開発を主軸としていたこともあり、インターンシップがスタートした当時は、Android開発の基本中の基本すら理解できていませんでした。

例えば、「『ライフサイクル』という概念があることを知らない」
「XMLで画面レイアウトを書けない」 というレベルでした。

とはいえ、このままでは開発タスクに参画できないばかりか、各種ミーティングやSlackでのやり取りすら理解できません。まずはAndroid開発の基本を学ぶところから始める必要がありました。

そこで本インターンシップにおける目標を「開発に必要な知識をできるだけ早く、かつ満遍なく習得すること」とし、この目標を更に

  • Androidの基礎概念を理解しよう
  • Android開発に慣れよう

の2つの小目標に分け、インターンシップ生活がスタートしました。

Androidの基礎概念を学ぶ

まず目標の1つ目「Androidの基礎概念を理解しよう」を達成するべく、メンターの方おすすめの書籍を読みました。 書籍の内容は概ね以下のようなものです。 どれもアプリを開発する上では避けて通れない、極めて重要な事項ばかりです。

  • Android Studioの環境構築
  • XMLとビュー
  • ConstraintLayout
  • Activity/Fragment
  • 非同期処理の仕組み

基礎概念を1から学ぶため、私はこの教本を1ページ目から順に読み進めていきました。 教本のコードや解説を読み、わからないところは自分で検索して、それでもなお理解が及ばない箇所には付箋を貼ります。
毎朝10時にメンターの方との面談があり、何でも質問・相談できたので、付箋を付けた箇所について質問し、疑問を解消していました。

付箋がたくさんついた教本

1ヶ月ほどかかって教本を無事読破し、基本的な用語や概念について知ることができました。(その知識を使いこなせるかは別問題)

Androidアプリ開発に慣れる

続いて目標の2つ目「Android開発に慣れよう」を達成するため、私はクイズアプリを制作してみることにしました。
大まかな手順は以下のとおりです。

  1. クイズアプリの仕様を決定し「仕様書」にまとめる
  2. 各画面の見た目をFigmaで作成する
  3. 各画面のUI/ビジネスロジックの実装及びアプリ内で使用するリソースの用意にかかる工数を試算し「WBS」にまとめる
  4. 実装する

特に実装に際しては、「非同期処理」「ビューの回転に伴う画面の再構築」などの技術的な課題にぶつかり、その度にチームのみなさんにサポートいただきました。

最終的に完成したアプリがこちらです。色やボタンはデフォルトのものを流用しているので少々チープに見えますが、きちんと動作します。
完成したアプリのホーム画面

特にアプリのメインであるクイズ機能には、かなり力を入れました。 画面に表示される4つの選択肢を、問題文で指示された順番通りに選択するクイズです。乱数を使って選択肢の並び順をランダムにしたり、SharedPreferencesを利用して、これまでに解いた問題の履歴を閲覧できるようにしました。

完成したアプリのクイズ画面

完成したアプリの履歴画面

インターンシップ全体を通して学んだこと

本インターンシップを通じて、目標としていた「開発に必要な知識をできるだけ早く、かつ満遍なく習得すること」をある程度達成できたと思います。
教本を読み、実際にアプリを1から制作する中で、以下のようなAndroidアプリ開発の前提知識を学びました。

  • Androidアプリ開発に欠かせない各種概念
  • Kotlin(Java)の文法
  • Android Studioの使い方

これに加えて、先輩方の発言や働きぶりから、チーム開発に携わる上で知っているべき以下の事項についても知ることが出来ました。

  • プロダクトを作る際には、設計・工数見積りなどの事前準備が必要なこと
  • 動作するだけではなく、コードの保守性・可読性も考慮する必要があること
  • チケット発行→実装→コードレビューという一連の流れの繰り返しによってプロダクトが作られていること

趣味・個人レベルで開発をしていたときには、上記の要素を考慮しなくても困りませんでしたが、チームの一員として開発を行う際には、これらを常に意識しなければなりません。
この事を事前に知ることが出来たという点でも、インターンシップに参加した意義がありました。

余談

今回は、Androidチームの新卒インターンシップについて紹介しました。

私は4月の入社以降、週2日出勤しそれ以外はテレワークを行っていますが、インターンシップ期間中は週3日、都心の満員電車に乗ってオフィスに来ていました。
本題からは少しズレますが、オフィスに出社してインターンシップに参加して良かったと思うことがあります。

東京に来るまで朝の満員電車に乗ったことがなかったので、初めての出社日はかなり気疲れしたのを覚えています。それでも繰り返し出勤するうちにだんだんと平気になりました。
技術者としての基礎基本を学ぶと同時に、社会人の生活リズムに慣れる練習もできた、という意味でも非常に有意義なインターンシップだったと思います。

ここまで読んでいただきありがとうございました!
ココナラでは、新卒採用も積極的に行なっているので、もし興味がありましたら下記のリンクからご確認ください!
一緒に働けることを楽しみにお待ちしております。

https://coconala.co.jp/recruit/newgraduates/

Discussion