前書き

こんにちは!プロダクツ統括本部 プロダクトデザインセクションのMonoです!

もともとは銀行のシステムエンジニアをしており、オープンソース言語の開発の実務経験はなかったのですが、
2018年にリバークレインに入社してから実務としてJavaやPHPの経験を経てスマートフォンアプリの開発に従事してきました。

現在はシステムエンジニアの知識と経験と、バイクが好きということを認めてもらい
主にスマートフォン用のアプリケーション開発のプランニングやディレクションをしています。

ウェビックアプリについて

突然ですが、ウェビックアプリをご存知ですか?
2019年にはじめてリリースされたアプリで、
皆さんの近くにあるバイクショップでウェビックポイントが使えるようにすることを目的として開発されたスマートフォン用アプリです。

現在は様々な機能が追加されており、
お得に買い直しをしたり、店頭でウェビックと価格比較がしやすくするための商品バーコード検索 機能
ウェビック+で掲載されている記事を便利に読める 機能
自分だけのスポットを登録したり、チェックインするとウェビックポイントがもらえる 機能

など様々な機能があります。

まだまだ、改善点が多いアプリですが少しずつ機能の追加や、改善などを行っております。

ウェビックアプリを開発するにあたって

ウェビックアプリはFlutterという言語で開発されています。

Flutter

Flutterとは、2018年にGoogleから正式リリースされたばかりのオープンソースのフレームワークです。
一番の特徴としてあげられるのは、クロスプラットフォームで開発ができるため、
Android、iOSだけでなく、WebアプリWindowsアプリ、Mac、Linuxなど様々なプラットフォームのアプリケーションを1言語だけで開発出来まするのが大きな特徴です。

そのため、学習コストや開発期間などを削減できるなど新規にスマートフォンアプリを開発したい場合に注目されている言語になります。

Stack overflow trend
<参考 Stack Overflow Trends>

新規事業の立ち上げということもあり、1から2つの言語を習得するよりも早く開発に入れるということからこの言語を採用しました。

Dartとは?

Flutterの開発には同じくGoogle社によって開発されたDartという言語を仕様して開発を行います。
Dart

Dartの記載方法はJavaScriptに近く、JavaScriptを習得している人であればそれほど苦労せずにDartも使いこなせると言います。
また、C言語やC#、Javaなどにも少しずつ似ているということから多言語からの移行も比較的カンタンなプログラミング言語とされています。

Flutterを使ったアプリ開発のメリット

上記にも記載していますが、
・1言語で複数のプラットフォーム開発が行える
・学習期間や開発期間を通常の開発に比べて半分で済む
・JavaScriptライクな文法なため、開発経験がある場合に導入しやすい
・新しい機能が日々追加されるため、更新頻度が目まぐるしい
・・・etc

実際に立ち上げ当初に自分もシステムエンジニアとして開発に携わっていましたが、簡単なアプリを立ち上げるだけならば1ヶ月程度でできました。
さすがGoogleが開発した言語ということもあり、学習教材は多く、Youtubeには様々な教材がアップロードされているため、これからやってみようという方にも優しい言語だと思います。

Flutterを使ったアプリ開発のデメリット

・ネイティブ言語と比べて処理速度などが遅い
・まだ発展途上な言語なため、バグや仕様上実現が難しいものが多い
・1言語で開発ができるというものの、AndroidやiOS特有の仕様などの把握やそれに応じた書き分けが必要
・・・etc

簡単なアプリを作成する分には十分ですが、凝った3Dゲームのような描画には向いていなかったり
同じ機能であってもKotlinやobjective-cと比較すると処理速度に差が出ることが分かっています。

最後に

Flutterは他の言語に比べてまだリリースされて日が浅い言語です。
数ヶ月に1回メジャーバージョンアップするほど活発に進化し続けてる最中で、まだ不具合も多いのも現状です。

しかしながら、多くの人が注目している言語であり、リリース当初に比べるとだいぶ処理速度が向上したり、苦手としていた3D描画も見れなくないようになってきて可能性が増えてきました。

今後、バイクライフを便利に、そして楽しくできるようなそんな機能をリリースできるように頑張っていきますので楽しみにしてください!