フリーランスに向けてKotlin案件や単価相場、案件獲得方法などをご紹介
KotlinはAndroidアプリ開発においてGoogleが正式にサポートしているプログラミング言語です。
フリーランスの方のなかで、「どのようなKotlin案件があるのかを知りたい」方や「Kotlinの単価について気になる」方もいるのではないでしょうか。
本記事では、はじめに「Kotlinとはどのようなプログラム言語なのか」を整理したうえで、フリーランスの方に向けてKotlin案件や単価相場、案件獲得方法などをご紹介します。
Kotlinとは
Kotlinはチェコ共和国のソフトウェア開発企業であるJetBrainsの研究所で開発されたプログラミング言語になります。
2023年12月現在1.9.21が最新バージョンになります。
Kotlinという名前はKotlinが開発されたサンクトペテルブルクの近くにあるロシア連邦の島、コトリン島が由来となっています。
Kotlinは現在JetBrainsとGoogleが創設したKotlin財団によって管理されています。
Kotlinのおもな特徴は以下になります。
- 静的型付け言語(プログラムの実行前にデータ型があらかじめ決められている言語)の1つ
- Androidアプリ開発、サーバーサイド開発、Web開発、デスクトップ開発、ネイティブ開発などが可能
- JavaやC#、JavaScript、Scala、Groovyなどのプログラミング言語から着想を得ているので、これらの言語を習得した人にとっては習得しやすい傾向がある
以下の記事ではKotlinの特徴や仕様などについて解説しています。
Kotlinを学びたいフリーランスエンジニアの方は参考にしてみてください。
KotlinとJavaの違い
KotlinはもともとJVM(Java Virtual Machine=Java仮想マシン)上で実行することを意図して設計されていおり、Javaと互換性があります。
前述のとおり、Kotlinは既存の言語から着想を得て作られた言語で、そのうちの1つがJavaになりますが、この2つにはどのような違いがあるのでしょうか。
項目 | Kotlin | Java |
開発可能なシステムやアプリケーション | ・サーバーサイド ・Webアプリ ・Androidアプリ | ・Webサービス ・Webアプリ ・PC向けアプリ ・Androidアプリ ・基幹システム ・組み込みシステム ・ソフトウェア ・IoT |
Null安全性 | ・デフォルトでは変数やオブジェクトにnull値を設定できない | ・任意の変数でnull値を設定できる |
拡張関数 | ・クラスの機能を継承せずに拡張できる | ・既存のクラスの機能を拡張するには新しいクラスを作成して親クラスから機能を継承しなければならない |
コード | ・少ないコードで記述できる | ・Kotlinよりコード記述量が多い |
関数型プログラミング | ・オブジェクト指向プログラミングと関数型プログラミングの両方をサポートする | ・オブジェクト指向プログラミングに限定 |
チェック例外 | ・利用できる | ・利用できない |
パブリックフィールド | ・なし | ・あり |
ワイルドカード型 | ・提供されない | ・提供される |
KotlinはJavaのフレームワークやライブラリも流用可能なので、似ている部分が多いと思われがちですが、開発できるものや記述しなければならないコード数などに大きな違いがあります。
KotlinとScalaの違い
Kotlinと似ているプログラム言語としてScalaも挙げられますが、どのような違いがあるのでしょうか。
以下ではKotlinとScalaの違いについてお伝えします。
項目 | Kotlin | Scala |
言語開発の目的とそのアプローチ | ・関数型言語やプログラミングパラダイムを1つの言語に入れるなど実験的なアプローチを行っている | ・ソフトウェア開発の現場で起こる課題を解決しやすいように作られている |
関数型プログラミング | ・オブジェクト指向プログラミングと関数型プログラミングの両方をサポート | ・オブジェクト指向プログラミングと関数型プログラミングの両方をサポート |
習得のしやすさ | ・習得しやすい | ・高度な関数などを用いているために複雑で習得しにくい |
ライブラリの数 | ・JavaやScalaと比較すると少ない | ・充実している |
ツールの数 | ・充実している | ・Kotlinと比較すると少ない |
Kotlinエンジニアの仕事とは?
Kotlinエンジニアの仕事とは、具体的にどのようなものなのでしょうか。
Kotlinの仕事内容の例を紹介します。
アプリ開発
お伝えしたとおり、KotlinはAndroidアプリ開発においてGoogleが正式にサポートしているプログラミング言語です。
新規のアプリ開発や既存のアプリの改修などの案件でKotlinを使用する場合があります。
クライアントの要望に合わせて設計、開発、テストを行い、その後の運用や保守に携わる可能性もあります。
サーバーサイド開発
Kotlinはコードが読みやすくコンパイル時にエラーを発見しやすいという特徴があるため、サーバーサイドの開発に用いられることがあります。
具体的には、Kotlinエンジニアがアプリのプログラムを動作させるサーバーのデータ処理や、外部システムとの連携などを行います。
データベース関連の業務
データベース関連の業務とは、次のようなものを指します。
- システムの基盤となるデータベースの設計
- アプリケーション、データベース、API連携機能の構築
- ソフトウェアの保守、不具合の修正といったデータベースの運用
上記のようなデータベース関連の業務を担当することもあるでしょう。
Kotlinエンジニアに求められるスキル
Kotlinエンジニアにはどのようなスキルが求められるのでしょうか。
Kotlinエンジニアに求められるスキルをご紹介します。
Kotlinの基礎知識
基本的にはなりますが、Kotlinエンジニアとして仕事をするためには、まずKotlinの文法やフレームワーク、ライブラリなどの基礎知識が必要です。
Kotlinの具体的なフレームワークに関しては後ほど説明します。
プログラミングやアルゴリズムの知識
Kotlinはオブジェクト指向プログラミングと関数型プログラミングの両方をサポートしているため、オブジェクト指向への理解と関数型プログラミングの知識が求められるでしょう。
効率的な処理を実現するプログラムを作るためにはアルゴリズムの理解も必要となるでしょう。
UI・UXデザインのスキル
UIとはUser Interfaceの略称で、直訳すると「ユーザーとの接点」を指し、UIデザインとはユーザビリティの向上を目的としてユーザーが目にしたり、操作したりするもの全てのデザインをすることを指します。
一方UXとはUser Experienceの略称で直訳すると「ユーザーの経験」を指し、UXデザインとはユーザーにより楽しい経験をしてもらい顧客満足度を上げるのを目的として、ユーザーがサービスやシステムを通して得られる経験をデザインすることです。
アプリやシステムをユーザーファーストで開発する視点を求められることもあるため、UIデザインやUXデザインの考え方を知っておいてもよいでしょう。
データベースの設計スキルやIDEの知識
アプリを作成するにはWeb上でのデータのやり取りが必要となるので、データ管理の基本となるデータベースの知識が役に立つことがあります。
またAndroidアプリの場合IDE(統合開発環境)を利用して開発が行われることもあるため、IDEに関する知識も身につけておいてもよいでしょう。
Kotlinエンジニアの統合開発環境(IDE)
統合開発環境とはシステム開発をする時に必要な機器やソフトウェア、ハードウェアの組み合わせのことを指します。
Kotlinエンジニアによく使用されている統合開発環境ツールは次の通りです。
開発環境の種類 | メリット | デメリット |
IntelliJ IDEA | ・Windows、Mac、Linuxで使うことができる ・日本語に対応している ・コンストラクタなどを生成してくれる機能があるため手間を省ける ・Kotlinとの相性がよい | ・起動が遅く動作が重い場合がある |
JetBrains Fleet | ・多言語でコードエディタとIDEとして使える ・2023年12月現在パブリックプレビュー期間内なので無料で使用可能 | ・まだパブリックプレビュー段階なのでクラッシュが報告されたり、メモリの消費が多かったりといった事象が発生 |
Android Studio | ・Android開発に最適化されている ・テストが行いやすい ・強力なコード編集機能がある | ・初心者には設定が複雑 |
Eclipse | ・主にJavaで使われるがプラグインを使うことでKotlinの開発環境としても使える ・3か月ごとにバージョンアップする | ・初心者には環境構築が難しい |
Kotlinフレームワークとは?
フレームワークとはソフトウェア開発の土台となる、汎用的な機能や基本的な制御構造の半完成品をひとまとめにしたもので、案件の募集要項にもよく記載される言葉の1つです。
Kotlinにおいて特徴的なのは、Javaと共通するフレームワークが存在することです。
以下ではKotlinのフレームワークについて説明します。
Kotlinフレームワークのメリットとデメリット
Kotlinのフレームワークにはメリット・デメリットがあります。
メリットは以下になります。
メリット | 説明 |
開発の効率化 | フレームワークを利用することで、開発にかかる時間を短縮できる |
バグやミスの防止 | フレームワークを利用することで自らコードを作成する必要がなくなり、バグやミスの防止につながる |
一定の品質を担保できる | フレームワークに基づき開発を進めることで、一定の品質を担保することが可能 |
一方デメリットは以下になります。
デメリット | 説明 |
習得するまでに時間がかかる可能性がある | Kotlinはドキュメントが少ないなどの要因によって、フレームワークを使いこなすまでに相当の時間がかかる可能性がある |
開発の自由度が下がる | 決まった方法に則りコードを書くため、カスタマイズや特殊な要件に対応することが難しい場合がある |
コストが発生する可能性 | フレームワークによっては無料ではなく、有料のフレームワークがあるため、コストがかかる可能性がある |
Kotlinフレームワークのご紹介
具体的にはどのようなフレームワークがあるのでしょうか?
こちらでは、代表的なKotlinフレームワークを紹介します。
フレームワークの種類 | 概要 | メリット | デメリット |
Ktor | ・Kotlinと相性が良い | ・軽量 ・最小限の機能のみを実装 ・拡張性が高い ・動作環境の幅が広い | ・比較的新しいのでドキュメントなどが少ない |
Spring Boot | ・Spring Frameworkの問題点を踏まえて開発されたフレームワーク | ・記述コードが削減できる ・XMLファイルが不要 ・Springの歴史が古いためコミュニティが充実している | ・比較的多くのメモリを消費することがある ・複雑であるため、効果的に使いこなすまでには時間が必要になる可能性がある |
Jooby | ・マイクロフレームワークの1つで軽量なのが特徴 | ・拡張性が高い ・型安全を重視している | ・機能が少ないため大規模案件には向かない |
javalin | ・シンプルで軽量なのが特徴のKotlinとJava向けフレームワーク | ・非同期リクエストに対応している ・初心者が習得しやすい | ・他のフレームワークに比べるとサポートが限られることがある |
Gradle | ・Android開発の標準ビルドツール(プログラムのビルドや実行を自動化するツール) | ・jarファイルの作成が簡単にできる ・Gradleがインストールされていない環境でも動作する | ・学習が難しく、初心者には取り組みにくい可能性がある |
Kotlinは比較的新しいプログラミング言語であることから、フレームワークの数も他の言語と比較すると多いわけではありません。
できるだけニーズに合ったものを選ぶことで効率的に開発できるでしょう。
Kotlinの今後の需要は?
プログラミング言語にはさまざまな種類があるため、Kotlinの今後の需要がどうなるかが気になる人もいるのではないでしょうか。
プログラミング言語別の求人数は以下のような結果になっています。
Kotlinは6番目に求人数が多いプログラミング言語となっています。
プログラミング言語の種類 | 案件数 |
Java | 723件 |
PHP | 311件 |
JavaScript | 192件 |
Ruby | 129件 |
Python | 126件 |
Kotlin | 55件 |
また、「KotlinConf 2023」というJetBrains社が主催している、Kotlinに関するカンファレンスのなかで、以下のデータが発表されました。
- 100 万を超えるGitHubプロジェクトがKotlinを主要言語として使用している
- Kotlin Multiplatformライブラリの数は昨年60%増加し、その増加は今も続いている
- すべてのプラットフォームのKotlinユーザーの86%がKotlinに満足または非常に満足している
- KotlinはAndroidアプリ開発で最も人気のある言語で、上位1,000のAndroidアプリの95%以上がKotlinを使用している
- Kotlinを使用しているプロのAndroid開発者の96.9%がKotlinに満足しており、この割合はJavaの開発者よりも9ポイント高くなっている
Kotlinを使用したエンジニアの満足度が高く、やはりAndroidアプリの開発においては人気の高い言語であるようです。
Kolin案件の紹介
どのようなKotlin案件があるのでしょうか。
こちらでは、Kotlin案件の具体的な例を紹介します。
案件名 | ~102万/Kotlinエンジニア/介護事業者向けサービス開発支援 |
業務案内 | SaaS プロダクトの新規開発。 開発工程: ・プログラム設計 ・コーディング 作業内容: マイクロサービスアーキテクチャで Kotlin、Spring Boot などを使って開発をしていきます。 バックエンドの開発、フロントエンドの開発、共に担当する可能性があります。 開発基盤の選定からしている状況のため、詳細の技術スタックのバージョンなどまだありません。 開発環境 ・Kotlin、GraphQL、TypeScript、Spring Boot ・AWS |
スキル | 必須スキル ・オブジェクト指向プログラミング言語を使ったモデリング経験 尚可スキル ・MSAでのAPI設計経験 ・GraphQL、AWS各種サービスでのインフラ構築・自動化、業務の調査・分析経験 ・TypeScriptやフレームワークを利用してのフロントエンド開発経験 |
単価 | 850,000~1,020,000円/月給 |
勤務地 | 東京都 or リモート(80~100%) |
案件名 | ~90万/Androidエンジニア(Kotlin)/【ITサービス】コンシューマ向けアプリ開発支援(No.483975) |
業務案内 | クライアントが提供している一般コンシューマ向けアプリのスマートデバイス開発をご担当頂きます。 今年度末に当アプリの機能アップデートがあり、改修業務に加え、新規機能追加や、リリース済みアプリの運用保守対応もお願いする可能性があります。 最新の技術を取り入れるような現場で、現場メンバーも良い方ばかりなので、おすすめの環境です。 |
スキル | 必須スキル ・Androidアプリの設計以降の経験5年以上(kotlin) ・一般コンシューマ向けアプリのスマートデバイス開発経験 ・負荷分散を意識したコーディングスキル 尚可スキル ・GoogleMapなど位置情報を利用したアプリの設計開発経験 ・iOSアプリの設計以降の経験(swift) |
単価 | 800,000~900,000円/月給 |
勤務地 | リモート |
案件名 | ~127万/Swift・Kotlinエンジニア/モバイル決済サービスのアプリ開発レビュー |
業務案内 | モバイル決済サービスのアプリ開発にて、設計書・プログラムのレビューを担当いただきます。 作業工程: ・プログラム設計レビュー ・単体テスト計画 ・システムテスト ・基本/詳細設計レビュー ・内部/外部結合テスト設計 主な業務内容: ・アプリバックエンド設計書確認 ・スマホアプリ プログラム内容を設計書に落とし込み、プログラムで足りない部分の記載、指摘 ・ブランドテスト実施ケース作成(既存のアプリテストへの追記) |
スキル | 必須スキル ・モバイル決済サービス設計・実装経験者 ・当該機能テスト実施経験者 |
単価 | 1,190,000~1,270,000円/月給 |
勤務地 | リモート |
Kotlinの単価相場
プログラミング言語によって、単価相場は異なります。
Kotlinの単価相場はいくらなのでしょうか。
プログラム言語別単価相場を基に、おもな言語の単価をお伝えします。
プログラミング言語 | 単価(月平均) | 単価(年平均) |
SAP | 130万円 | 1552万円 |
Scala | 94万円 | 1122万円 |
Kotlin | 79万円 | 945万円 |
Python | 76万円 | 911万円 |
PHP | 74万円 | 883万円 |
Java | 72万円 | 862万円 |
Ruby | 64万円 | 759万円 |
JavaScript | 60万円 | 712万円 |
HTML/CSS | 44万円 | 519万円 |
Flash | 39万円 | 462万円 |
また、フリーランスのKotlinエンジニアの経験年数別の単価相場は以下となっています。
Kotlinの経験年数が5年を超えてくると、93万円(月単価)、1116万円(年平均)になります。
Kotlinエンジニアとしての経験を積めば積むほど単価が月平均で7万円程度、年間では84万円程度上がるので、少しずつでもスキルアップして単価を上げてみてはいかがでしょうか。
経験年数 | 単価(月平均) | 単価(年平均) |
1年未満 | 71万円 | 852万円 |
1年~3年 | 74万円 | 888万円 |
3年~5年 | 85万円 | 1020万円 |
5年以上 | 93万円 | 1116万円 |
Kotlinの高単価案件を獲得するためのスキル
Kotlinエンジニアが高単価案件を獲得するためには、どのようなスキルが必要なのでしょうか。
「Kotlinの高単価案件を獲得するために必要なスキル」をご紹介します。
Kotlinを使用した1年以上の開発経験
先ほどお伝えしたとおり、Kotlinの経験年数が長いほど単価が上昇する可能性があります。
したがってKotlinの開発を1年以上経験することによって、高単価に繋がるでしょう。
Androidアプリの開発経験
KotlinはAndroidアプリの開発に最も人気のある言語で、Androidアプリの設計、開発、テストなどに関わった経験があると高単価案件を獲得につながるでしょう。
Androidアプリの開発技術力を裏付ける資格として、一般社団法人IT職業能力支援機構が主催している、「Android™技術者認定試験制度」があります。
「アプリケーション技術者認定試験」と「プラットフォーム技術者認定試験」の2種類の専門領域におけるスキル認定を受けられるようになっています。
Androidアプリの開発に携わった経験を裏付けるために、資格を取得することによっても高単価案件獲得につながるのではないでしょうか。
Android Studioに関する知識や経験
「Android studio」はAndroidアプリ開発用の統合開発環境(IDE)になります。
「Android studio」の知識や経験があると、開発効率を高めコーディングからテストまでをスムーズに行えるようになり、Kotlinエンジニアとして差別化され、結果として高単価案件の獲得につながる可能性があります。
上流工程の経験
PMやPMOなどの上流工程に対応できると、高単価の案件獲得を期待できます。
以下はフリーランスエンジニアの職種別の単価相場になりますが、上流(PM/PMO/コンサル)の職種が最も高く、単価(月平均)で唯一80万円を超えています。
そのほかの職種の単価は、インフラエンジニアの74万円から運用系の53万円となっています。
上流(PM/PMO/コンサル)に関わる職種の方が高単価の傾向にあることがわかります。
大分類 | 単価(月平均) | 単価(年平均) |
上流(PM/PMP/コンサル等) | 86万円 | 1030万円 |
インフラエンジニア | 74万円 | 885万円 |
開発エンジニア | 68万円 | 805万円 |
クリエイター(ディレクター/デザイナー等) | 56万円 | 665万円 |
運用系(ヘルプデスク、情シス、保守運用) | 53万円 | 627万円 |
Kotlin案件を獲得する方法
画像出典:プロフェッショナル&パラレルキャリアフリーランス協会「フリーランス白書2023」
2023年にプロフェッショナル&パラレルキャリアフリーランス協会が発表した「フリーランス白書2023」の中で、フリーランス850人に対し「直近1年間で仕事獲得に繋がったことのあるもの」をたずねたところ、上記の結果が出ました。
Kotlin案件の獲得経路について詳しくご紹介します。
人脈
「フリーランス白書2023」では、「知人の紹介なども含む人脈」から案件を獲得したことのある人が70.6%という結果でした。
案件を獲得するためには信頼を得る必要があります。
面識のある人物であれば、ある程度信頼関係が構築されている場合があるため、案件をスムーズに獲得することができるでしょう。
過去・現在の取引先
「過去や現在の取引先」から案件を獲得したことのある人が64.7%でした。
「人脈」と同様にある程度の信頼関係が構築されており、自身のスキルや実績なども理解してくれている場合があるため、案件獲得のひとつの方法として実践してみてはいかがでしょうか。
自分自身の広告宣伝活動
「自分自身の広告宣伝活動」で案件を獲得したことのある人が31.6%でした。
ホームページやSNSを使用することで自分のことを宣伝できるので、仕事についてのホームページやSNSアカウントなどを作ってクライアントに呼びかければ、依頼が来る可能性があります。
フリーランス初心者の方も利用を検討してみてください。
エージェントサービスの利用
画像出典:プロフェッショナル&パラレルキャリアフリーランス協会「フリーランス白書2023」
エージェントサービスの利用と回答した人は25.8%でしたが、コロナ禍前までは最も収入が得られる案件獲得経路として「人脈」が40%以上を占めていたのがコロナ禍後には10%ほど減少し、代わりに増加したのが「エージェントサービスの利用」です。
エージェントサービスとは、フリーランスを対象に案件の紹介や契約交渉、案件稼働後のサポートなどを行ってくれるサービスです。
SHIFTフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。
エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。
まとめ
本記事では、「Kotlinとはどのようなプログラム言語なのか」を整理し、フリーランスの方に向けてKotlin案件や単価相場、案件獲得方法などをご紹介しました。
Kotlinは2011年に生まれたまだ新しいプログラミング言語ですが、今後需要が増えていくことが予想されます。
ご紹介したようにAndroidアプリの開発に最適化された「Android Studio」の使用経験や、Androidアプリの開発技術力を裏付ける「Android™技術者認定試験」などを取得することで高単価案件獲得につながる可能性があります。
本記事がフリーランスの方の参考となれば幸いです。