IoTアプリ開発
- IoTアプリ開発
- IoTアプリの特徴
- YAZソリューションの強み
- YAZソリューションが選ばれる理由
「モノのインターネット」を意味するInternet of Things、いわゆる「 IoT」。
インターネットを通じて、”モノ”の操作やデータのやり取りなどを可能にするのが IoTアプリです。
■ リモコンでの温度変更・スマートフォンを使っての起動など「モノの遠隔操作」
■ ヒトの健康状態・トイレの混雑情報など「モノの状態を知る」
■ 電車の運行状況・人感センサーなど「モノの動きを検知する」
■ AIスピーカー連携・自動車とカメラなど「モノ同士で通信する」
■ リモコンでの温度変更・スマートフォンを使っての起動など「モノの遠隔操作」
■ ヒトの健康状態・トイレの混雑情報など「モノの状態を知る」
■ 電車の運行状況・人感センサーなど「モノの動きを検知する」
■ AIスピーカー連携・自動車とカメラなど「モノ同士で通信する」
デジタルトランスフォーメーション(DX)の推進により、
IoT技術は様々な分野・領域で有効活用され、あらゆるモノがインターネットと繋がる社会。
従来のインターネットに接続していなかったモノ (家具、家電、車、建物、電子機器など) が
サーバーやクラウドにインターネットを介して繋がるようになり、
IoTが私たちの生活や暮らしを豊かにするテクノロジーとして、さらなるIoT化が社会から求められています。
01. IoTアプリ開発
開発言語
Objective-CやJavaが多用されていた数年前。現在では、ほぼSwiftやKotlinをメインの開発言語として使用しています。
開発環境
iOSはmacOS上でXcodeによる開発、AndroidはmacOS/ MicosoftWindows上でAndroid Studioによる開発が一般的です。
プラットホーム
一度導入したシステムも、お客様の業務形態や事業の成長に合わせてバージョンアップが必要な場合もあり、保守開発を切り離すことは出来ません。
YAZは、お客様のシステムをリリースして終わりではなく、運用保守まで対応を行っています。
保守開発を進めるにあたり、お客様の要望を迅速に反映させるためにDevOpsの仕組みを初期導入時から構築しています。
この仕組みでは、プログラムコードの品質を数値化して測り、可視化して管理します。
ライブラリ・フレームワーク(一例)
Alamofire | HTTP 通信ライブラリ |
---|---|
Realm | モバイル向けデータベース管理システム |
RxSwift | 非同期処理フレームワーク |
CryptoSwift | 暗号化ライブラリ |
AWSSNS | SNSを用いたプッシュ通知を行うための フレームワーク |
Firebase Analytics | Firebaseを用いたアプリ測定ソリューション |
Firebase Crashlytics | Firebaseを用いたクラッシュ レポートツール |
CoreBluetooth | iOS標準のBLEライブラリ |
Android Bluetooth API | Android標準のBLEライブラリ |
02. IoTアプリの特徴
IoTアプリの開発事例
AIマットレス・マットレス連携快眠アプリ
睡眠に関するデータを蓄積しサーバにて解析。目覚ましなどの機能を外出先から予約可能。
アプリとマットレスにてBLE(Bluetooth)通信を行い、AIによる心地よい睡眠をサポート。
ヘルスケア・フィットネス系
身近なウェアラブルに蓄積されたデータをスマホ経由でサーバ連携し、ジムトレーニング情報と連携。
その他の開発実績
・メディカルアプリ
・ライフスタイルアプリ
・ファイナンスアプリ
・仕事効率化アプリ
・ブックアプリ
・ショッピングアプリ
・ビジネスアプリ
等
YAZでは現在、マットレス製品に関連したIoTアプリ開発を行っています。
マットレス付属の専用タブレット (Android) を操作することで、マットレスを動かすことができます。
そのタブレットとスマホアプリを連携させることにより、アプリをインストールしたスマホからもマットレスの操作が可能となります。
また、サーバーに連携することで睡眠中のデータを蓄積し、そのデータを用いてユーザーごとの睡眠状態の解析などもしています。
このようにマットレス・タブレット・スマホアプリ・サーバーをそれぞれ連携させるように作り込んでいくものが、IoTアプリ開発です。
IoTアプリの開発スタイル
開発手法
基本的にはウォーターフォールでの開発になります。必要に応じてプロトタイピングも行っています。
開発フェーズ
企画、要件定義、外部設計、内部設計、製造、単体テスト、結合テスト、総合テスト、リリース、納品
開発ツール、フレームワーク
開発ツール:Xcode、Android Studio
QCD管理
現在は、お客様より開発用の製品本体をお借りし、実際に動かして検証しながら開発を進めています。
タブレットとスマホの連携にはBLE (Bluetooth Low Energy) を使用しており、AndroidではBluetooth API、iOSではCoreBluetoothという標準ライブラリなどを使用して開発を行っています。
IoT開発では、スマホアプリ開発技術に加えて、BLEの仕様理解や各OSにおけるBLEライブラリの特徴なども理解して開発を進める必要があります。
利用ユーザーの声をアンケートにて収集。
お客様と一緒にアプリの追加機能アイデア出し。
お客さまの課題とご要望をヒアリングし、課題の解決策をご提案。お客さまの確認後、要件検討資料を作成。
システム仕様書を作成しUI/UXなど認識齟齬の確認。 プロトタイプを作成し動作確認。
ソースコードレビューを行いコーディング規約チェック。
AndroidStudioのProfilerやXcodeでのAnalyzerを利用したチェック。Insterumentsでのメモリリークや性能面のチェック。
Modelクラスは可能な限りテストコード作成。カバレッジ向上を進める。
お客さまの要件を網羅したテストケースを考慮し、スマホアプリ特有の異常系テストケースも対応。
App Store公開もサポート。
ストア開設からGoogle Play ConsoleやTestFlightによるリリース前テストも可能。
リリース後の運用・保守も継続可能。
利用ユーザーの声をアンケートにて収集。
お客様と一緒にアプリの追加機能アイデア出し。
お客さまの課題とご要望をヒアリングし、課題の解決策をご提案。お客さまの確認後、要件検討資料を作成。
システム仕様書を作成しUI/UXなど認識齟齬の確認。
プロトタイプを作成し動作確認。
ソースコードレビューを行コーディング規約チェック。
AndroidStudioのProfilerやXcodeでのAnalyzerを利用したチェック。Insterumentsでのメモリリークや性能面のチェック。
Modelクラスは可能な限りテストコード作成。カバレッジ向上を進める。
お客さまの要件を網羅したテストケースを考慮し、スマホアプリ特有の異常系テストケースも対応。
App Store公開もサポート。
ストア開設からGoogle Play ConsoleやTestFlightによるリリース前テストも可能。
リリース後の運用・保守も継続可能。
IoTアプリ開発に取り組む理由
・製品をより便利に使用できるようにするため
・IoTアプリを通してより便利な生活にするため
AIや機械学習、自動化をはじめ、様々な技術が世の中で必要とされています。
YAZがIoTアプリの開発に取り組むことで、お客様の課題や要望など様々なリクエストに応えられるよう会社全体として取り組んでいます。
03. YAZのソリューションの強み
開発手法
YAZで請け負っているIoT案件の9割はウォーターフォール開発となります。
要件定義や外部設計時における確認には、プロトタイプを作成し簡単な動作確認をお客様と共に行っています。
アプリケーション開発だけでなく、サーバサイドやインフラ含めたサービス全体のQCD向上をスコープとしています。
品質管理 / マネジメント体制
開発において一番重要な「品質」。
品質を担保するためにはレビューやテストが不可欠です。
レビュワーはIoT開発に精通したリーダーが担い、テスト仕様書についてもV字の観点(要件定義→総合テスト、外部設計→結合テスト、内部設計→単体テスト)でレビューを行います。
スマートフォンアプリ開発は様々なサイズや解像度の端末に対応する必要があります。
それらをMVCの観点で正しく機能分割することでソースコード量を減らし保守性を高めています。
豊富な開発実績
開発において一番重要な「品質」。
教育・育児関連アプリなどの「コンシューマ系」アプリの開発から、商業施設向け決済アプリなどの「業務系」の開発や、「金融系」と分類されるアプリ開発をメインで行っています。そのため品質の高さを要求されることが多く、お客様の高い要求に応えることで定期的なご依頼を頂いています。
※ゲームや娯楽系アプリに関しては、協力会社をご紹介します。
テンプレート開発
先日リリースした駅直結商業施設向け決済アプリについては、テンプレートと呼ばれるいわゆる雛形を用いてのアプリ開発を行っています。開発の最大のメリットとしては、通常アプリ開発にかかる費用や納期を数分の1に抑えることが可能です。
iOS/Androidアプリ開発どちらも可能
当社ではiOS・Androidの開発も同時に行うことで、国内でほぼ2分される両方のスマートフォンに対応。
両OSの開発ができるメンバーを育成しています。
04. YAZのソリューションが選ばれる理由
お客様の要望に対して「できない」ではなく「どうしたら実現できるのか」を、YAZではあらゆる手段を講じて解決策を導き出します。更に、目先の利点よりも長期的な視点で「あるべき姿」を一緒に描くことで、長きに渡りお客様に選ばれ続けています。
お客様の課題に対する解決の糸口を、YAZはとことんヒアリングをし一緒に考え、予算に合わせた「わかりやすい説明」で、お見積書を提示します。
開発コストが高くなりがちな通常のウォーターフォール型開発では、数百万からのスモールスタートで徐々に機能追加するご提案や、少しづつ品質を上げていきたいといったお客様の要望に合わせ、アプリの課題と優先度を可視化し、月単位から年単位で課題を解決するという対応も可能です。
また開発体制としてもSES、ラボ型、請負といったお客様の予算や要望に応じた受託体制を臨機応変に構築します。
開発だけでなく運用保守も行うため、長期的に渡りお客様と伴走することで、直面する課題を共有しながら技術的に解決します。
お客様の「ありがとう」を、YAZはエネルギーに変換し新たなるソリューションをお届けします。