バイセル Tech Blog

バイセル Tech Blogは株式会社BuySellTechnologiesのエンジニア達が知見・発見を共有する技術ブログです。

社内で開催しているiOS勉強について

はじめに

テクノロジー戦略本部の早瀬です。

先日までは写真撮影アプリの開発にアサインされていましたが無事リリースが完了して、今は出品管理を行う業務システムの開発に携わっています。

弊社では外部の iOS エンジニアの方を講師として現在週2回のペースで iOS 勉強会を行っているのですが、今回は自分のアウトプットも兼ねてその内容を紹介したいと思います。

背景

弊社ではいくつかのiOSアプリを開発・運用しているのですが、社内で iOS 開発をできる人材を増やしたいという背景から今年の 2 月に勉強会をスタートしました。

参加者は iOS 開発未経験の人がほとんどですが、最終的な勉強会のゴールとしては「iOS エンジニアとして社外でも通用するレベルの人材育成」を想定しています。

勉強会の内容

さて、本題の勉強会の内容ですが大きく分けると Swift の言語仕様の学習と アプリ開発の2つに分けられて、現在は月曜日に Swift の言語仕様を勉強、木曜日に実際に手を動かしてアプリを開発するといった形で進めています。現在勉強会で開発しているアプリではほぼ実務と同じ技術を使用しており、一通り実装を終える頃にはサポートを受けながら実装に入れるレベルにはなっていると思います。

約半年ほど勉強会を実施して iOS の基本に関しては一通り学んだので、勉強会で行った内容の中から個人的にいくつかピックアップして詳しく紹介したいと思います!

言語仕様

非公式ではありますがこちらの Swift の公式ドキュメントの日本語訳をベースに Swift の言語仕様の勉強を進めています。1 日 1 トピックを目安に実務ならどのように使用するかなども交えながら言語仕様について学びます。 言語仕様に関してはもう少しでドキュメントが一通り終わるので、終わりしだい月曜日の時間も使ってアプリ開発を行う予定です。

UIKit

UIKit とは Apple が提供している、インターフェースを実装するためのフレームワークです。iOS で画面の表示に関する実装をする場合は、UIViewController(基本的な画面を表示するためのクラス)や UITableViewController(セル表示のためのクラス)などといった UIKit のクラスを使用します。

学習期間は週1日のペースで 3 ヶ月程で、実際にサンプルを動かしたり実装しながら学習しました。

Todo アプリの作成

このあたりから実際にアプリを開発しながらの学習になります!! 上記で学んだことを元に必要な知識をキャッチアップしながら Todo アプリを作成しました。上記の学習の定着と基本的な iOS アプリの開発の流れを身につけることを目的として、ライブラリはほとんど使用せずに作成しました。

要件や上記以外で使用した技術は下記のようになります。

  • 機能は Todo の追加、削除、編集、並び替え
  • デザインは AutoLayout で調整
  • データの保存には UserDefaults を使用

その後、作成した Todo アプリを全体でレビュー+実務で使用しているライブラリを使うとどのような実装になるかをリファクタリングしながら学習していきました!

todo一覧 todo作成
f:id:bst-tech:20210816063516p:plain:w300 f:id:bst-tech:20210816063537p:plain:w300

テトリスアプリの作成

こちらは現在進行形で作成しているアプリになります! Todo アプリとは打って変わって、ほぼ実務と同じ構成・ライブラリを使用して下記のようなテトリスアプリを作成していきます。 大枠の設計などは講師の方に実装していただき、詳細の実装をいくつかのステップに分けて実装していく流れです。 弊社の iOS 開発で使用している技術は、CASH の iOS アプリを支えるライブラリで紹介しているので興味のある方はご覧ください! 下記はテトリスアプリでの使用技術の一部になります。

こちらは社内の iOS エンジニア向けのカリキュラムにする予定で、完成した際にはまたブログを書こうと思います!

完成予定
f:id:bst-tech:20210814203001p:plain:w300
Swiftris

まとめ

iOS 開発は覚えなければいけないこともたくさんありますが、その分奥が深くとても楽しく開発させていただいています。 また最近では勉強会に参加する人も増えてきて、勉強会が活発になって嬉しいです!

最後にバイセルテクノロジーズでは iOS をはじめ、エンジニアを募集しています。 もし興味のある方はぜひご応募ください。

hrmos.co