【アプリ開発】Marbera(マーベラ)ができるまで Vol.1
2024.09.19
エンパワテックソサエティーの小林です。これまで私は生成AIサービスのお話ばかりをしてきましたが、実は本職はアプリ開発のエンジニアだったんです。皆さんに便利なサービスを紹介したすぎてそんな話ばかりになってしまいました….
そろそろ本職であるアプリ開発についてお話しさせて頂きます!
少し技術的な内容が多くなるかもしれませんがよろしくお願いします!
Marbera(マーベラ)について
最初はタイトルにもある通り弊社の自社サービスMarbera(マーベラ)について軽く触れようと思います。詳しくは今後、弊社代表がブログで熱い思いと共に綴ってくれると思いますので乞うご期待!
Marbera(マーベラ)は妊娠の対象年齢(生殖年齢)である女性の健康管理を目的としたアプリです。よく生理管理アプリですか?と聞かれますがそれは全く違います。
もちろん、生理管理も重要な健康管理なので機能として搭載はしていますがMarberaにおいては1つの機能でしかありません。
将来の妊娠のために必要な情報の発信であったり、ユーザーの体調に応じた健康アドバイス、専門家とのチャット相談など女性の健康予防に必要な機能をほぼ網羅したアプリになっています。
開発した私が言うのもなんですが、めっちゃいいアプリです。
みんなに使って欲しい!
と言うことだけお伝えして、Marbera(マーベラ)の説明は終わっておきます。ここからは、Marbera(マーベラ)を作るために使用したプログラミング言語などについての話になります。
弊社で使われている技術について知って頂き、これから一緒に仕事がしたいと思っていただける企業様が一社でもお問い合わせくれたらこんなに幸せなことはありませんので、何卒よろしくお願いします!
Flutterを選んだ背景
Marbera(マーベラ)の開発にはFlutterを採用しました。スマートフォンのアプリケーション開発ではSwiftやKotlinなどが有名ですが、SwiftはiOS専用、KotlinはAndroid専用だったりと、両方に対応することができません。
そこでFlutterです。FlutterはiOSとAndroidどちらにも対応したアプリケーションを開発することができます。一つのフレームワークで一気に両方に対応したアプリケーションを開発できるため、開発に伴う工数やコストを大幅に削減することができます。そうしたこともあり、今回はFlutterでの開発を行いました。
Flutterとは
Flutterの特徴として、Dartというプログラミング言語を使用しており、ビルド速度が速く、開発者がリアルタイムで変更を確認できる「ホットリロード」機能もあります。プログラミング言語の中には、プログラムを変更すると、一度アプリの実行を止めて動作の確認を行わなければならないものもあります。
Flutterにはホットリロード機能が備わっているため、コードを入力すればすぐに動作の確認ができるという特徴もあります。
また、Flutterは「ウィジェット」という要素を利用してUIを構築します。これにより、アプリケーション全体のデザインやインターフェースを細かくカスタマイズすることができます。ウィジェットの豊富なライブラリが提供されているため、デザインの柔軟性も非常に高く、クライアントが求める独自のUIを簡単に構築できます。
Flutterのメリット
クロスプラットフォーム(iOSとAndroidの両方に対応)
Flutterの大きなメリットは、何といっても「単一のプログラっミング言語を使って、複数のプラットフォームに対応できる」点です。従来、iOSとAndroidで別々にアプリを開発する場合、異なる言語と開発環境を使い分ける必要がありましたが、Flutterを活用することでその手間を省くことができます。これにより、開発の工数やコストを半減できると言っても過言ではありません。リソースが少ない現場でもスピード感を持って開発を進められるので本当に助かっています!
ホットリロード機能による高速開発
さらに、Flutterは「ホットリロード機能」によって、コード変更をリアルタイムに反映することができます。この機能により、アプリの挙動をすぐに確認でき、無駄な待ち時間を大幅に削減できます。ホットリロードがあるのとないのでは開発のスピードが全然違います!
ストレスを感じることもないので、開発者のメンタルにも優しい機能じゃないかなと思います笑
加えて、FlutterはGoogleがバックについているため、短期間で急成長したコミュニティを形成しています。開発をする際に必要不可欠なライブラリやツールも充実しているため様々な機能を実装することができます!
やはりGoogleは偉大です…
カスタマイズ性の高いUI設計
さらに、UIを構築する際にもFlutterは存在感を放ちます。Flutterで開発する場合、Googleが推奨しているマテリアルデザインを採用しているため、プラットフォームの環境に左右されることなく、カスタマイズ性の高いアプリデザインの設計が可能です。
ここでもGoogle…
Flutterのデメリット
ここまでFlutterのメリットについてお話ししてきましたが、もちろんいいところばかりではありません。
とはいえ、デメリットを補って余るメリットがあるなとは思いますが…
ここでは、私が実際に開発して少し不便に感じたところをお話しします。
日本語のドキュメントが少ない
一番困ったのは参考にする情報やドキュメントに日本語のものが少ないということです。Futter自体が比較的新しい技術なのでまだまだメジャーな言語に比べると情報量自体が少ない傾向にあります。(今はだいぶ増えてはいますが)
そのため少し踏み込んだ技術になると、日本語で解説をしているものとなるとさらに少なくなってしまい、英語を翻訳したり、動画の場合だと画だけを見て理解しなければならないということもありました。
ただ、今はChat先生もいらっしゃるのでそこまで致命的な欠陥ではないかな?とは思います!
動作面で少し不利
強力なバックGoogleのおかげで急速に改善されてはいますが、レンダリングやテキストへのフォーカスなど動きの面で、SwiftやKotlinなどのネイティブ開発によって作られたアプリに比べると少し動作が遅く感じることがあります。
ただ、こちらも年々改善されているので近い将来気にならなくなる可能性は高いかなと思っています。
Flutterの将来性
Flutterの将来性ですが、これからも需要は伸びていくんじゃないかな?と思っています。
まず、Googleが公式にサポートしている技術であるため、今後も継続的なアップデートや新機能の追加が見込まれますし、今回は言及しませんでしたが実は、FlutterでWebアプリやデスクトップアプリを開発することもできます。
Flutterを使いこなすエンジニアが一人いればそれだけで開発することのできるアプリの幅が大幅に増えるため、導入したいという企業もどんどん増えていく可能性があります。
また、比較的新しい技術だというお話をしましたが、言い換えるとまだまだ伸び代が未知数だといえます。Flutterを利用している開発者も年々増加していることから、一層魅力的なプラットフォームの一つとなるでしょう。
アプリ開発といえば、Flutterと言われる日も近いかもしれません。
そんな魅力的なFlutterを採用している、弊社エンパワテックソサエティーと一緒にお仕事をしたいと思ってくださる企業様!
ぜひお問合せください!受託開発を承ります。