SlideShare a Scribd company logo
1 of 18
Cordovaは業務システムを
簡単にするのか
C’sFactory テクニカルディレクター
北村 尊人
10年前にプログラマをリタイヤした46歳のおっさんでもできるApacheCordova
2018年1月25日(木)
ITの難しいを簡単にする会#3
本日のコンテンツ
・自己紹介
・Cordovaとは?
・今回のプロジェクトの構成
・やってて困ったこと
・まとめ
自己紹介
・名前:北村 尊人(きたむら たかと)
・生まれ:1971年1月28日 もうすぐ47歳 佐賀県の有明海沿いの地域
・嫁一人 中1男子一人の3人暮らし
・元ワーカホリック
・今は、平日をフルに働いて、土日をゆっくり休む意識高い系エンジニア
・土日は主にスプラトゥーン2(B+~A‐をうろつくゆるゲーマー)
・リンダグラットンさんのワークシフト・ライフシフトにかぶれて、
80歳まで現役で働くのが目標
経歴
・1993年4月 22歳大学卒業と同時に就職。
車製造系の工場のプログラマとして活動。メインの言語はC言語
・1998年頃 電力系のWebシステムを兼業
メインの言語はcgi,php
このころから管理業務が増えてくる。
・2005年頃 電力系のWebサーバ構築とかやる
ほぼ管理系業務にうつる
・2011年 車の工場に出向
工場内ネットワーク配線リプレースの仕事
・2014年 最初の会社辞める。転職
電力系のインフラ業務で、WebサーバとかFW、LBの設定とかする
・2017年4月 このままではいかんと思ってC’sFactoryへ転職
ApacheCordovaでの業務システムに移る。
年齢と仕事量・PG作成量
年を取るにつれてPG作成時間は減っていく。(一般論)
0
50
100
150
200
250
300
350
PG作成時間(月) 業務時間(月)
今までの勤続年数(46-22=24年)今後の勤続年数(80-46=34年)
後34年 ITで仕事するんだったら、もう一度プログラマをやらないといかん!
工場系システム開発
Web系システム開発
Web系サーバ構築 ネットワーク インフラ
Cordovaとは?(その1)
Wikipediaでは
“Apache Cordova(アパッチ・コルドバ)は、オープンソース(Apache 2.0
License)のモバイルアプリケーション開発フレームワーク。
ニトビ・ソフトウエア社によってPhonegap(フォンギャップ)として開発が始
められ、その後アドビシステムズがニトビ・ソフトウェア社を買収したことに
よりPhoneGapはAdobeのプロダクトとなったが、そのソースコードがApache
CordovaとしてApacheソフトウェア財団に寄贈され、コミュニティによってメン
テナンスされている。”
シェアはhttp://www.appbrain.com/stats/libraries/devによると、
6.81% of apps(GooglePlayに登録されている割合?)
1.19% of installs(デバイスにインストールされている割合?)
Cordovaとは?(その2)
マルチデバイス用の開発フレームワーク
Android/iOS/WindowsPhoneなどで動作するアプリケーションが作れる。
UIはHTML5で作成し、デバイス毎での違いは、プラグインで吸収。
通常は、プラグインは用意されたものを使うだけで、ユーザーが作ることはあまりな
い。
⇒それくらい、必要なプラグインはインターネット上に転がっている。
⇒今回は、いろいろ特別な処理が必要となったため、何種類かを自作。
HTML5の世界(WebView) Javaの世界
UI側アプリの
JavaScriptの世界
Pluginの世界
IFの
JavaSctipt
実際のAndroidNativeと
うまいことやるJava
利用アプリの
JavaSctipt
Cordovaライブラリ
今回の業務要件
家庭の計測機器からデータを吸い上げるシステム
ガラケーからAndroidへのシステムリプレース
※構成図には一部フェイクあり
CCサーバ
業務サーバ今回開発対象の
Android
測定機器
カーナビに目的地情報を
ブルートゥースで送信す
る。
カーナビ
測定機器からブルー
トゥースでデータを吸い
上げる
吸い上げたデータを
HTML通信で送信
CC端末
お客様からの問い合わ
せを登録
サーバからAndroidへ
Push通信
定周期で位置情報を送
信
今回作ったアプリのソフトウェア構成
フレームワーク
Angular
BootStrap
HTML5
業務アプリ
HTML5
CordovaPlugin群
ブルートゥース通信
Navicon連携
SQLite3
など
Android拡張(サービス型)
プッシュ受信
位置情報定期送信
Cordovaライブラリ
SQLite3DataBase
外部ツール
HTML5関連
Node.js
JSビルドツール:grunt
JSライブラリ管理:npm
JSライブラリ管理:Bower
Cordovaコマンド
外部ツール
Java関連
Javaビルド:Gradle
Javaライブラリ管理:Gradle
JDK1.8
AndroidSDK(AndroidVer6.0)
※業務アプリが、Chrome単体デバッグできるように、
Cordova回りのスタブを大量に作成。
今回作ったプラグイン
・Android限定で作成
・BlueToothシリアル通信プラグイン
専用機器と通信するためのシリアルプラグイン。当初汎用で作ろうかと
思ったが、いろいろ業務プロトコルの色合いが強く断念。
・Naviconプラグイン
デンソー製のNavicon(カーナビと連携出来るMapアプリ)との連携用の
プラグイン。INTENT連携させてる。
・SQLite3Storageプラグイン改
最初は純正を使用していたが、サービス部分との競合が発覚し、
若干修正する。
・その他もろもろ(10個くらい)
やってて困ったこと(その1)
・Plugin開発に必要な(日本語の)情報がネット少ない。
あるのは、既存のPluginの取り入れ方とかそんなのばっか。
参考にした書籍は主にコレ⇒
この本で基本は理解。
でも、肝であるConfig.xmlに関する資料がほぼないため、
そこは、独学。
StackOverFlowに書かれている英文をひたすら読み解き、
どうにかこうにかやり切れた。
やってて困ったこと(その2)
【SQLite3がCordovaとNativeで競合する】
Cordova側のSQLiteStorageプラグインを使っており、Native側は、
SQLiteOpenHelperを使用していたが、この2つを同時に使うと、
Transactionをかけても、SQLiteOpenHelperの方がCommit時に上書きする。
⇒結局、Native側もCordovaPluginのモジュールを使い競合が無いように改修
やってて困ったこと(その3)
業務システム開発というか、大企業での開発あるある
※Cordova以前の問題。
【ネットが繋がらない】
セキュリティ観点で、インターネットに繋げられない。
⇒調べものすら、ままならない。
⇒テザリングでGradleとか構築しようものなら、パケ死必須。
⇒Wimax契約して対応
でも、まだ持ち込みPCの使用が許されたからいい方かも。
Androidのビルド時、Mavenのレポジトリサーバを見に行ったりするので、代替サー
バを社内に建てる必要も出てきた。
やってて困ったこと(その4)
これも大企業あるある
【PCが遅い】
CPU:Core i5 Memory 4G
この環境で、
AndroidStudio
WebStorm
を同時に動かさなければならない。ビルドに5分くらいかかる。
ましてや間違えてAndroidのエミュレータでも起動した日には、
PC自体がフリーズ!
⇒MacBookProを買って対応
業務システムプロジェクトに
組み込んでみて楽になったか?(その1)
自分の中での結論
それなりに楽だったんじゃないかと思う。
今回のプロジェクトは大きく2つのチームに分かれて開発
・通常のユーザーが使う画面側を作る業務チーム 10名程度
・システムのフレームワークを作る共通チーム(我々) 5名程度
【業務チーム】
WebStorm+Chromeを使ってHTML5レベルで開発+単体テスト
⇒CordovaPluginとかはスタブで実装(当然スタブ作るのはめんどくさい)
⇒開発効率は、普通のWebアプリ並みに高い。
⇒PC環境が弱くてもある程度実行できる。
【共通チーム】
フレームワークおよび各プラグインの構築。
今回、初回のプロジェクトだったので、結合テスト以降でイヤーな問題が出るかと思っ
てたけど、ほとんど問題は出なかった。
業務システムプロジェクトに
組み込んでみて楽になったか?(その2)
【保守性】
保守面を考えると割と難しいと思える
業務系システムだと、大体1度作成すると10年とか使う。
⇒環境を維持するのが大変。
PCの開発環境を「今のまま」維持する必要あり。
⇒ソフトウェア構成を理解するのが大変。
構成があまりにもマニアックになってしまったため、初期構築時の
メンバーじゃないと保守が難しい感じ。
10年リタイアしてたおっさんエンジニア
はプログラマとして復活できたか?
結論として、どうにか復活できた!
⇒1か月で転職を後悔し、退職を考えた。
⇒でも、毎日レベルアップしているのがわかってすごく楽しい。
⇒細かいテクニックの部分は追いつかない。
Javaにしろ、JavaScriptにしろ結局はどれだけその言語に触っているかがポイント
今まで経験がない部分を新たに習得するのは20,30代に比べて時間がかかるし、
すぐ忘れる。
・昔やったことは忘れていない。
⇒ブルートゥースの通信とかでのハマりどころとか。
⇒若いころに、ストレス抱えてやった事は忘れないみたい。
・私は、10年間ソフトウェアから離れて、色んな仕事をしたことに対しては後悔してませんが、
その間ソフトウェアの勉強してなかったことは後悔してます。
みなさんもドンドンとんがった技術を勉強してください。
最後に
C‘sFactoryは、技術的に「とんがった」仕事を
することを目的とした会社です。
社員は随時募集中!
「とんがった」仕事をしたい人がいらっしゃっ
たら、ぜひ、うちの会社に入ってください!
いっしょにとんがりましょー!

More Related Content

Similar to Cordovaは業務システムを簡単にするか?

第7回SIA研究会(例会)プレゼン資料 油野様
第7回SIA研究会(例会)プレゼン資料 油野様第7回SIA研究会(例会)プレゼン資料 油野様
第7回SIA研究会(例会)プレゼン資料 油野様
Tae Yoshida
 

Similar to Cordovaは業務システムを簡単にするか? (17)

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
サラリーマンの節税塾
サラリーマンの節税塾サラリーマンの節税塾
サラリーマンの節税塾
 
地獄Spec
地獄Spec地獄Spec
地獄Spec
 
地獄Spec
地獄Spec地獄Spec
地獄Spec
 
鹿駆動
鹿駆動鹿駆動
鹿駆動
 
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント 虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
 
福岡Meetup/(カラビナテクノロジー株式会社:藤村賢志)
福岡Meetup/(カラビナテクノロジー株式会社:藤村賢志)福岡Meetup/(カラビナテクノロジー株式会社:藤村賢志)
福岡Meetup/(カラビナテクノロジー株式会社:藤村賢志)
 
The invitation to Infrastructure CI
The invitation to Infrastructure CIThe invitation to Infrastructure CI
The invitation to Infrastructure CI
 
JAZUG CDP勉強会第二回クラウドデザインパターン超入門=「コンピューティングの分割、配置」 「オートスケーリング」
JAZUG CDP勉強会第二回クラウドデザインパターン超入門=「コンピューティングの分割、配置」 「オートスケーリング」JAZUG CDP勉強会第二回クラウドデザインパターン超入門=「コンピューティングの分割、配置」 「オートスケーリング」
JAZUG CDP勉強会第二回クラウドデザインパターン超入門=「コンピューティングの分割、配置」 「オートスケーリング」
 
プログラミングを学ぶと何が良いのか
プログラミングを学ぶと何が良いのかプログラミングを学ぶと何が良いのか
プログラミングを学ぶと何が良いのか
 
第7回SIA研究会(例会)プレゼン資料 油野様
第7回SIA研究会(例会)プレゼン資料 油野様第7回SIA研究会(例会)プレゼン資料 油野様
第7回SIA研究会(例会)プレゼン資料 油野様
 
iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1
 
indeed Indeed - a presentation for Indeed なう -
indeed Indeed - a presentation for Indeed なう -indeed Indeed - a presentation for Indeed なう -
indeed Indeed - a presentation for Indeed なう -
 
アンラーニング
アンラーニングアンラーニング
アンラーニング
 
20160430 kintone Café 沖縄女子会 Vol.1 kintoneデモ環境紹介
20160430 kintone Café 沖縄女子会 Vol.1 kintoneデモ環境紹介20160430 kintone Café 沖縄女子会 Vol.1 kintoneデモ環境紹介
20160430 kintone Café 沖縄女子会 Vol.1 kintoneデモ環境紹介
 
DL-D_ver1.pdf
DL-D_ver1.pdfDL-D_ver1.pdf
DL-D_ver1.pdf
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 

Cordovaは業務システムを簡単にするか?