Kotlinは、モバイルアプリ開発に多く用いられるプログラミング言語です。この記事では、Kotlinを用いた開発に興味があるエンジニア向けに、Kotlinの特徴や用途、仕事内容、求められるスキルや知識、求人情報、転職のポイントを解説します。
Kotlinとは
Kotlinは、JetBrains社が開発したプログラミング言語です。主にAndroidのアプリケーション開発に用いられます。同じくAndroidアプリケーションの開発に用いられるJavaと互換性があり、Kotlinのほうが後発であることから、より少ないソースコード量で簡潔に記述できます。Javaで書かれた既存のプログラムを、Kotlinを用いて統合や移行することも可能です。
Kotlinの用途
Kotlinの主な用途はアプリケーション開発ですが、他にもできることがあります。ここでは、Androidアプリケーション開発、Webアプリケーション開発、サーバーサイド開発について紹介します。
Androidアプリケーション開発
Kotlinは、2019年にGoogleがAndroid開発の推奨言語に指定し、大きな注目を集めました。これにより、Kotlinを採用したAndroidアプリケーションの数が急激に増えています。
Webアプリケーション開発
KotlinはWebアプリケーション開発にも用いられます。Webアプリケーション開発のフレームワークも充実しており、Ktor、Spring Boot、Jooby、Javalinなどが代表的です。
サーバーサイド開発
KotlinはJavaとの互換性があることから、サーバーサイド開発にも利用できます。 Javaで作られた既存システムのサーバーサイド部分を、Kotlinを用いて統合や移行ができます。
Kotlinエンジニアの仕事内容
次に、Kotlinエンジニアの仕事内容について紹介します。モバイル開発に携わる場合と、Webアプリ開発やサーバーサイドの開発に携わる場合では仕事内容が大きく変わるほか、企業によっても業務範囲はさまざまです。たとえばモバイルアプリの場合、開発が主な仕事ですが、企画や設計などの上流工程や、アプリのリリース後の運用・保守を担うケースもあります。
モバイルアプリ開発の場合
Androidアプリケーション開発をメインに行います。要件定義に従い、開発・テストの工程を経て、Google Playストアでのアプリ配信まで行います。また、求人情報にモバイルアプリエンジニアやネイティブアプリエンジニアと記載されている場合、AndroidアプリとiOSアプリ両方の開発を対象にしていることもあります。
Webアプリ開発やサーバーサイドの開発の場合
Webアプリケーションの新規開発や、既存のWebアプリケーションのリプレイスなどを行います。たとえば、すでに何年も稼働しているJavaで作成されたWebアプリケーションを、Kotlinにリプレイスするケースが多いです。
サーバーサイドであれば、システム内で呼び出すAPIサーバーの実装をリプレイスするケースがあります。これらの用途でKotlinを採用する理由として、モバイルアプリ開発にKotlinを採用している企業が技術スタックを揃えるためや、Javaを利用している企業が学習コストを抑えながらリプレイスを推進しやすいことが挙げられます。
求人情報にサーバーサイドエンジニア(もしくはバックエンドエンジニア)という表現が使われる場合には、Webアプリだけではなく、モバイルアプリのサーバーサイド部分が開発対象に含まれることもあるため、業務内容をよく確認しましょう。
Kotlinエンジニアの求人の特徴
続いて、レバテックキャリアに掲載されている求人情報を参考に、Kotlinエンジニアに求められる経験やスキル・働き方について解説します。
求められる経験・スキルについて
モバイルアプリの開発経験や、関連するプログラミング言語のスキルが必要です。Kotlinだけではなく、ReactNative、Flutter、Swiftなどのスキルが求められることも多く、開発経験は年数で表現されます。また、対象をモバイルアプリに限定せず、開発全般の経験を条件としている企業もあります。
対象者について
企業が求める学歴や経歴はさまざまです。数は少ないですが、未経験歓迎や第二新卒OKなどの条件が明記されるケースもあります。また、学士号の取得を条件としている求人情報や、入社後のキャリア形成を考慮して30歳までを対象とする求人情報もあります。
リモートワークについて
Kotlinの求人に限らず、2020年以降、リモートワークでの勤務が可能な求人情報も増えています。2022年11月現在のレバテックキャリアに掲載されているKotlinの求人情報1353件中、1069件がリモート可となっています。ただし、Kotlinを使った開発では、Androidなどの実機を取り扱うこともあります。そのため、実機での検証を行う専任のテストエンジニアがいない場合、会社で管理している検証端末を利用するために出社が必要となるケースもあるでしょう。
Kotlinエンジニアの求人例
最後に、Kotlinエンジニアの求人例として、ネイティブアプリエンジニア、サーバーサイドエンジニア(バックエンドエンジニア)の2例を紹介します。(※2022年11月現在)
ネイティブアプリエンジニアの求人例
・仕事内容
・エンジニア/デザイナー/ディレクターのチームメンバー全員で、企画から運用までを実施
・機能開発、テスト、アプリケーションの運用/監視、ドキュメントの整備
・雇用形態:正社員
・年収・給与:500万~750万円
・必須条件
<経験>
・ソフトウェアエンジニアの実務(3年以上)
・Androidアプリ開発の実務
・3人以上でのチーム開発
<マインド>
・家族の課題を解決するサービスに興味関心がある方
上記の仕事内容からは、企画から運用まで幅広く担当し、開発以外にも企画に携わったり、アプリの運用・監視を行ったりする機会があることが読み取れます。また、デザイナーやディレクターなどエンジニア以外のメンバーと協力しながら、チーム開発を進めていく経験も積めるでしょう。
バックエンドエンジニアの求人例
・仕事内容
<具体的な業務内容>
・運用中Webサイト/モバイルアプリ全般の新機能追加などの開発全般
・自社CMSなど、各種バックエンドシステムの改善、開発全般
・新規Webサイト/モバイルアプリの要件定義からシステム開発まで
・運用中Webサイト/モバイルアプリの負荷対策やチューニングなど、運用保守としての各種システム改善
・雇用形態:正社員
・年収・給与:500万~800万円
・必須条件:
<経験>
・要件定義から実装までの(開発から保守運用までの一連のご経験)
・PHPの実務開発(フレームワーク不問/3年以上)
・ECサイトのシステム開発(決済導入、在庫連携など)
※いずれかで可
<マインド>
・事業内容やビジョン/ミッションに共感できる方
・上昇志向、行動力、向上心を持ち、主体的に行動できる方
・柔軟な考えを持ち、変化を楽しめる方
こちらの求人例では、PHPの実務経験や、ECサイトのシステム開発経験(決済導入)があることが条件です。
Webサイトやモバイルアプリでの決済方法を拡張する機能開発に、バックエンド側で携わる仕事といえます。
未経験からのKotlin学習ロードマップ
Kotlin未経験のエンジニアを対象に、どのようなステップでKotlinを学べばよいのか、学習ロードマップを紹介します。
Kotlinの基礎文法を学ぶ
まずは、Kotlinの基礎文法を学びましょう。Kotlinの入門書も多く出版されていますし、Web上にもKotlinの基礎文法を学べるプログラムが多数存在します。たとえば、Androidデベロッパーのスタートガイドでは、短期間でKotlinを習得するための集中コースが用意されており、以下のトピックが学べます。
-
・変数の宣言・条件分岐
・関数
・クラスの定義
・相互運用性について
・フラグメントの使い方
・null値許容について
Kotlinを学ぶうえで、とくに重要となるのが相互運用性への理解です。KotlinのなかでJavaのコードを呼び出したり、逆にJavaからKotlinのコードを呼び出したりするための工夫がされている重要なトピックであるため、しっかりと押さえておきましょう。
オブジェクト指向プログラミングを学ぶ
Kotlinはオブジェクト指向型の言語であるため、オブジェクト指向プログラミングを学びましょう。「やさしいKotlin入門」など、KotlinやJavaと合わせてオブジェクト指向を学べる書籍もあり、関連付けて学ぶことで理解がより深まるでしょう。オブジェクト指向で押さえておくべきトピックは以下のとおりです。
-
・クラス・オブジェクト
・プロパティ
・カプセル化
・抽象化
・継承
・ポリモーフィズム
また、オブジェクト指向と合わせて、デザインパターンについても学んでおくとよいでしょう。デザインパターンとは、再現性の高い問題に対応する設計のパターンをまとめたものです。「デザインパターンとともに学ぶ オブジェクト指向のこころ」のように、デザインパターンとオブジェクト指向を関連づけて学べる書籍もあります。
データ構造とアルゴリズムを学ぶ
データ構造とアルゴリズムは、Kotlinに限らず、プログラミングをするうえで必須の知識です。Kotlin以外のプログラミング言語を習得する際や、業務で開発を行う際にも役立つため、以下の内容をしっかりと押さえておきましょう。
・データ構造の種類(配列、木構造、リスト、スタック、キュー)
・計算量の考え方
・探索アルゴリズム
・ソートアルゴリズム
データ構造とアルゴリズムに関する多くの書籍が出版されていますが、なかでもおすすめの1冊が「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」です。プログラミングコンテストと併せて、データ構造やアルゴリズムを学ぶことができます。課題に対するプログラミングを考える、といった実践的な内容も含まれており、実務を見据えて学びたい方に最適です。
Kotlinにまつわる周辺知識を学ぶ
次に、実際にKotlinを用いて開発を行う際に必要となる周辺知識やツールについて学びましょう。たとえば、Gradleなどのプログラムのビルドや実行を行うためのビルドツールや、アプリケーションを開発するためのフレームワーク、Gitを用いたバージョン管理の考え方、GithubやGitlabなどのツールに関する知識が必要です。
-
・ビルドツール(Gradle)・フレームワーク
・バージョン管理の考え方(Git)
・バージョン管理ツール(GithubやGitlab)
アプリケーションを作成する
ここまで学習が進んだら、いよいよKotlinを用いたアプリケーションを作成してみましょう。ロードマップに沿って学習を進めてきたのであれば、Kotlinを用いた基本的なプログラミングスキルや、開発で必要となるツールについての理解が深まっているはずです。しかし、実際にアプリケーションを作成する過程では、セキュリティやテストの考え方、データベースとの連携、リリースや運用などについても考慮しなければなりません。
未経験からのKotlinエンジニア転職のポイント
最後に、Kotlin未経験のITエンジニアが、Kotlinエンジニアへ転職する際のポイントを紹介します。
サーバーサイド開発の経験を活かす
サーバーサイドの開発経験がある場合、Kotlinを用いたサーバーサイド開発に活かせるでしょう。また、Kotlinへの理解を深めながら、Webアプリとモバイルアプリ問わずサーバーサイド側の開発を担えるエンジニアを目指すキャリアプランや、モバイルアプリ開発に絞って業務領域を広げるキャリアプランもあります。
Javaの開発経験やオブジェクト指向の知識を活かす
前述のとおり、KotlinはJavaとの互換性があります。そのため、Javaでの開発経験や、オブジェクト指向型のプログラミング言語を用いた開発経験がある場合は、Javaで作られたシステムの統合や移行をKotlinで行う業務に活かせるでしょう。また、稼働中のシステムを統合や移行した経験を積むことで、システム刷新に強みを持つエンジニアとして業務の幅を広げられます。
ITエンジニアの転職ならレバテックキャリア
レバテックキャリアはIT・Web業界のエンジニア職を専門とする転職エージェントです。最新の技術情報や業界動向に精通したキャリアアドバイザーが、年収・技術志向・今後のキャリアパス・ワークライフバランスなど、一人ひとりの希望に寄り添いながら転職活動をサポートします。一般公開されていない大手企業や優良企業の非公開求人も多数保有していますので、まずは一度カウンセリングでお話してみませんか?(オンラインでも可能です)
転職支援サービスに申し込む
また、「初めての転職で、何から始めていいかわからない」「まだ転職するかどうか迷っている」など、転職活動に何らかの不安を抱えている方には、無料の個別相談会も実施しています。キャリアアドバイザーが一対一で、これからのあなたのキャリアを一緒に考えます。お気軽にご相談ください。
「個別相談会」に申し込む
レバテックキャリアのサービスについて