見出し画像

Flutterを用いたモバイルアプリ開発

こんにちは、エム・ソフトのモバイルアプリ開発チームです。
私たちのチームでは近年、開発を行う際に、Flutterというフレームワークを使用しています。
今回はモバイルアプリ開発に興味がある方にFlutterのことを少しでも知っていただけるように、簡単な紹介をさせていただきます。

Flutterの紹介

今回紹介するFlutterとは、Googleが開発したDart言語で使用されるモバイルアプリ(iOSやAndroid)用のフレームワークです。
Flutterの特徴として、クロスプラットフォーム対応ホットリロード機能があります。簡単にそれぞれについてお伝えしたいと思います。

以下がflutterでプロジェクトを自動生成した際のフォルダ構成です。

libファイル配下で作成するコードではDartを使用しています。
同階層にあるiosやandroidフォルダ内では、それぞれのプラットフォームに対応する言語で書かれたファイルが存在しています。
もしAndroid/iOSのどちらかにしかない機能がある場合には、Nativeメソッドを呼び出すように実装する必要もあります。
(実例:Picture in Picture、バックグラウンド再生)
Flutterのみで補えるものについては以下を参照するとよいかと思います。
https://github.com/flutter/plugins

Flutterで作られたアプリケーションの実用例として、GoogleではGoogleペイ、Google Earth、Google Classroomなどがあります。また、ユニバーサルスタジオ、BMW、TencentなどGoogle以外の企業でも利用されています。

クロスプラットフォーム対応

iOSとAndroid端末でのアプリ開発は、本来異なる言語を使用しています。そのため、それぞれに対応したアプリを作成する場合には単純に倍以上の開発コストがかかってしまう問題がありました。
(例:iOS⇒swift、Android⇒Kotlinなど)

その問題を解決するためにFlutterを使用します。具体的には次のような点が優れています。

  1. iOSとAndroidの開発を同時に行える

  2. どのプラットフォームを使用したとしても、統一された見た目を保つことが可能(独自UIを使用しているため、機器依存のないUI開発ができる)

ホットリロード

Flutterの便利な機能として、ホットリロードというものがあります。皆さんの中にも、「作成中のUIを更新したけどビルドに時間がかかって…」といった経験がある方もいらっしゃるのではないでしょうか。
Flutterでは開発中にコードを変更した際、リビルドする必要なく修正を反映することが可能です。

弊社開発アプリの紹介

弊社では、タニタ社製のポケッタブルスケール「GRAMIL」の専用アプリの開発を行いました。

この専用アプリは食事量を計測し、その値を記録することで日々の減量に役立てるためのアプリケーションです。

このアプリケーションはBLE通信を行い、ポケッタブルスケールから計測した値を取得します。一番苦労した部分がこのBLE通信で、iOS、Androidのネイティブ部分のコードをそれぞれSwift、Kotlinで実装しました。また、端末によってはBLEが正しく動作しないことがあり、端末に合わせてコードを修正することもありました。

このアプリの開発には最初から最後まで携わることができ、良い経験になりました。また、社内のデザイナーと協働でアイコンや画面デザインを作りこむ作業も楽しい時間でした。

アプリのデザインもエム・ソフトが担当

最後に

今回はモバイルアプリ開発で使用しているFlutterの特徴についてお話させていただきました。

近年モバイル端末の高機能化が進んでいることもあり、皆さんの生活から切っても切れない存在になっているのではないかと思います。
未経験だけどFlutterを使ってモバイルアプリを作ってみたい!と思った方は、Flutterの公式ページに詳しいチュートリアルもありますので目を通してみてください。


最後に、エム・ソフトは一緒に働くメンバーを募集しています!
もしこの記事を見て、エム・ソフトに少しでも興味を持っていただけましたら、以下の採用サイトをご覧ください!

新卒向けのエントリーや、会社説明会などの情報はマイナビサイトをご覧ください!

最後までお読みいただきありがとうございました。