第6回Apache Cordova勉強会 #cordovajp (2015/06/19)

whiteacs

suzukitakeshi@shitake4

第6回Apache Cordova勉強会に申し込みました! #cordovajp cordova.doorkeeper.jp/events/25503

Ionic Tokyo@IonicTokyo

@IonicTokyo: ngCordova勉強会参加します!
#ng_jp #cordova #AngularJS #ionic #cordovajp

Satoshi Watanabe@sassy_watson

Cordova勉強会にきました #cordovajp

suzuki@suzuki

第6回 Apache Cordova 勉強会へ着席。 #cordovajp (@ Internet Initiative Japan Inc. (#IIJ) – @iij_pr in 千代田区, 東京都) swarmapp.com/c/jJIJDZOYZ7n

suzuki@suzuki

まずはビール飲んでね宣言 #cordovajp

shimoju@shimoju_

初っ端からビールが出てくる勉強会 #cordovajp

shimoju@shimoju_

初参加 #cordovajp
なう #cordovajp 初参加なんだけどそっこービールで乾杯しはじめてちょっとびっくり

Yusuke Kai@codingalone

すげーな。ビールで乾杯とは。。無料でしたよね? #cordovajp

suzuki@suzuki

会場が固い感じのまま乾杯。初めての人が多くて戸惑い気味って感じかのかな(と言っている初めての人) #cordovajp

m_shige1979@m_shige1979

始まった
なんか普通にビール注いでいたのでビックリした
#cordovajp

orange3@orange73_m

Cordova勉強会☆初参加。楽しみー。#cordovajp

U.Kenkichi@UnoKenkichi

ビールが飲めるとは 素敵! #cordovajp

suzuki@suzuki

あ、19時スタートなのかと思ってたら、セッションは 19:30 スタート予定だった。 #cordovajp

s_dsk@s_dsk

今日もApacheCordova勉強会、弊社IIJのセミナールームにいっぱい来て頂きありがたい限りです! #cordovajp pic.twitter.com/bBdvImnK1O

Chis@ChisSinclar

初参加 #cordovajp

suzuki@suzuki

会場提供の IIJ さんからの告知。みおふぉん使ってます! #cordovajp

suzuki@suzuki

「AngularJS 超入門」 #cordovajp

suzuki@suzuki

アシアルでは AngularJS を使っている案件も多い。 #cordovajp

suzuki@suzuki

会場で jQuery 使っている人は? 半分くらい。AngularJS 使っている人は? 意外と多いよ。Knockout は?ちょいちょい。Backbone は? そこそこ。JQueryMobile は? 多い。OnsenUI は? #cordovajp

suzuki@suzuki

3月に Monaca 公式ガイドブックが出た。 #cordovajp

suzuki@suzuki

7月24日に大阪で Monaca 開発講座をやる #cordovajp

hkusu@hkusu_

着席した。
第6回Apache Cordova勉強会 (06月19日) #cordovajp cordova.doorkeeper.jp/events/25503

suzuki@suzuki

AngularJS はなぜ難しいか? 用語が多い。オブジェクト指向的な考えが求められる。JS 固有の問題(プロトタイプ)AngularJS2 を見据えて工夫すると大変 #cordovajp

suzuki@suzuki

入門レベルの JS 知識だと AngularJS は無理。 #cordovajp

suzuki@suzuki

最初に使うフレームワークには Knockout や Backbone の方がいいかも。AngularJS は1週間で学べるかというとちょっとあやしい #cordovajp

suzuki@suzuki

AngularJS 導入の目的を絞るのもひとつの手。Onsen UI が使いたいとかデータバインディングで楽したいとか。チーム開発の保守性を上げたいとか。 #cordovajp

suzuki@suzuki

AngularJS には「サービス」の概念がある。Provider / Factory / Service #cordovajp

suzuki@suzuki

AngularJS のテンプレートは生の HTML を使う感じ。ディレクティブをテンプレート中で呼び出せる。組み込みもあるし、自作も可能。Onsen UI はディレクティブの機能で作られている。 #cordovajp

suzuki@suzuki

AngularJS には DI の仕組みがある。モジュールでコードをまとめることができる。 #cordovajp

s_dsk@s_dsk

そういえば、Live配信もあるよ!youtu.be/aJsq8xLHRb4 #cordovajp

suzuki@suzuki

モジュールの作り方。
var app = angular.module(‘MyApp’, [‘onsen’]);
#cordovajp

suzuki@suzuki

ディレクティブ。HTML 内に書く `ng-*` とか。エクスプレッション。テンプレート内に {{name}} とか書く。 #cordovajp

suzuki@suzuki

var app = angular.module(‘myApp’, []);
app.controller(‘MainController’, function() {
this.name = ‘hoge’;
});
#cordovajp

suzuki@suzuki

<html ng-app=”myApp”>
<div ng-controller=”MainController as Main”>
<p>{{ Main.name }}</p>
</div>
as は 1.2 からの機能
#cordovajp

suzuki@suzuki

<input type=”text” ng-model=”main.name“>
これでバインディング。
#cordovajp

suzuki@suzuki

コントローラ間での情報共有。$scopeでは実現できない。サービスを作成して回避。Provider/Factory/Service #cordovajp

suzuki@suzuki

DIのminify対策。
app.controller(‘MainController’, [ ‘$scope’, function($scope) {
$scope.name = ‘hoge’;
}]);
[ ] で囲う。
#cordovajp

suzuki@suzuki

app.factory(‘User’, function() {
var user = {};
user.sayHello = function() { };
return user;
});
#cordovajp

Massie@massie

最初が切れてしまって申し訳ありません・・・。勝手に時間になると録画開始されると思い込んでました。 #cordovajp twitter.com/s_dsk/status/6…

suzuki@suzuki

<p>{{main.user.name}}</p>
<button ng-click=”main.user.sayHello()”>sayHello()</button>

#cordovajp

suzuki@suzuki

app.controller(‘SubController’, function() {
});
<div ng-controller=”SubController”>
// この中で app.factory() した user が参照可
</div>
#cordovajp

suzuki@suzuki

(ソースコードの中に「GO AKIHABAEA」という typo っぽいものが見えた) #cordovajp

suzuki@suzuki

アシアルではエンジニアを募集しているそうですよ!!! #cordovajp

suzuki@suzuki

「Cordova 女子と呼ばれている」 #cordovajp

kanako ubukata@kanako_ubukata

第6回Cordova勉強会始まりました。
アシアル岡本からはAngularJS入門のついて。
#cordovajp pic.twitter.com/9Ra96Oz0tf

suzuki@suzuki

♡楽しいCordovaプラグインの作り方+α♡ #cordovajp

kanako ubukata@kanako_ubukata

Cordova女子のお二人による、Cordovaプラグイン開発ライブコーディング
#cordovajp pic.twitter.com/uc31WcvHXz

suzuki@suzuki

Cordova の社内普及をしてたりしているとのこと #cordovajp

suzuki@suzuki

Crosswalk の話。Q: 会場で知っている人は? A:すごく多いわけではない #cordovajp

s_dsk@s_dsk

すごい、Cordova女子、だと・・・ #cordovajp

suzuki@suzuki

Crosswalk の便利なところ。Android 4.3以前 WebKit / 4.4以降 Blink の挙動の違いなどを解決 #cordovajp

suzuki@suzuki

Crosswalk = Webアプリケーションランタイム。Chroniumベースのブラウザエンジン。Android 4.0以上対応。BSD ライセンス。Cordova で利用可能。 #cordovajp

suzuki@suzuki

$ cordova plugin add cordova-plugin-crosswalk-webview
#cordovajp

suzuki@suzuki

Crosswalk があると、アプリケーション内に WebView を持つイメージになる。OS 標準の WebView は使わない。 #cordovajp
#cordovajp 配信、音出てないぽいですね…

suzuki@suzuki

端末メーカー、機種、バージョンの差異を吸収。ただし、ファイルサイズが大きくなる。 #cordovajp

suzuki@suzuki

Android 4.0 で Crosswalk があると、section, article などの HTML5 タグが使える。WebComponents も使える。 #cordovajp

suzuki@suzuki

デバッグ。Chrome を立ち上げる。chrome://inspect/#device デバッグしたいアプリの inspect をクリック。 #cordovajp

suzuki@suzuki

プラグイン開発。Q: プラグイン作ったことある人は? / A:そこそこいますね。
#cordovajp

suzuki@suzuki

プラグインを利用してネイティブ機能を組み込める。公式プラグイン、plugin registry にも登録されている。足りない場合は自作する。
#cordovajp
cordovaまったく触ったことないまま潜入してるんだけど、html5ベースで作って、プラグインまぜたらネイティブ UI触れるってのいいなあ #cordovajp

Hiroshi Kawada@_furoshiki

事前に見せてもらった時よりも、えらく女子力が上がったスライド。 #cordovajp

suzuki@suzuki

plugin registry って、npm に変わっていくのかな、これ。
cordova.apache.org/announcements/…
#cordovajp
うっ、プラグインはJava書く必要があるのか(そりゃそうだ) #cordovajp
Cordova自体のnpmやbrowserifyとかとの親和性が気になるけど、まあコマンドでアプリ作るってことはたぶんgulp入る余地ありそうだよね(たぶん) #cordovajp

suzuki@suzuki

「長い名前の部署からやってまいりました」 #cordovajp

suzuki@suzuki

Cordova Plugin をもっと簡単に! #cordovajp

suzuki@suzuki

Cordova plugin を作りやすくするツールの紹介。 #cordovajp
plugin.xml書くの絶対つらいよな、これツールなかったら作ったらよさそうだなって思ったら次のセッションで出てきてわろた #cordovajp

kanako ubukata@kanako_ubukata

ソニー関さんは、Cordova Plugin をもっと簡単に作る方法を教えてくれるようです。
#cordovajp pic.twitter.com/f8sckJwiUL

suzuki@suzuki

Plugman コマンドでプラグインのひな形を作ってくれる。引数が多いので分かりにくい。ちょっと面倒くさい。
#cordovajp

Yusuke Kai@codingalone

すげ、Yoemanでプラグインが作れるのか。フロントエンドの人としてはなじみがある #cordovajp

suzuki@suzuki

Yeoman generator を作ってみた。YEOMAN はアプリの scaffold 的なものを作る generator を作るためのツール。 #cordovajp

suzuki@suzuki

最近 GitHub にできた Sony のリポジトリの中のひとつだった!!!
github.com/sony/generator…
#cordovajp
そういやsonyのGIthubレポジトリっていったらsonyflakeちょっと話題になりましたね #cordovajp

suzuki@suzuki

インストール方法。node と yo が必要。Android SDK も必要。Yeoman generator は npm で。 #cordovajp

suzuki@suzuki

ライブコーディングで npm install するとは(時間かかりそう) #cordovajp

suzuki@suzuki

% yo cordova-plugin-devbed でプラグイン生成。 #cordovajp

suzuki@suzuki

「Windows PC なので iOS の開発ができない」 #cordovajp

suzuki@suzuki

(テストコードのひな形が自動生成されるの素晴らしい) #cordovajp

suzuki@suzuki

TestBed: Jasmine の testRunner になるアプリケーションも自動生成される #cordovajp
やっぱpluginの管理もnpmなのかな #cordovajp

suzuki@suzuki

Visual Studio Code 便利。TypeScript とか使える。Emacs キーバインドっぽくできる #cordovajp

Satoshi Watanabe@sassy_watson

プラグイン編集でplatforms以下のコードと元のpluginのコードが乖離しちゃう問題、すごくよくわかる。。。 #cordovajp
cordovaのことがわかんないのでpluginの更新問題がよくわからんかった #cordovajp

suzuki@suzuki

LT: Cordovaで作ったSNSアプリ紹介 #cordovajp

kanako ubukata@kanako_ubukata

今回からLTも始まりました!
#cordovajp pic.twitter.com/RsCa1401Pu

suzuki@suzuki

BCPortal sales-bcportal.jp が Cordova 製ってことか。 #cordovajp

suzuki@suzuki

もともと jQuery Mobile で実装。ブラウザ上ではパフォーマンスに不満。プッシュ通知も欲しい。Objective-C は苦手。ハイブリットアプリを選択。 #cordovajp

suzuki@suzuki

なぜハイブリットにしたか?メンバーがWebスキルあり、ネイティブアプリ経験なし。Webアプリのプロトタイプを流用できる。 #cordovajp

suzuki@suzuki

jQuery Mobile からの流用。Cordova で数時間でネイティブ化。ただし、パフォーマンスチューニングが必要なことがわかった。特にAndroidでもたつきも。 #cordovajp

suzuki@suzuki

次の機能。jQuery Mobile は重いことが分かったので、Onsen UI を選択。ハイブリットアプリにチューニングされている。 #cordovajp

suzuki@suzuki

グループトーク機能は Onsen UI + AngularJS で実装。ネイティブアプリに遜色ない速度で動く。デザインに時間が取られなくなった。jQuery より分かりやすく保守性が高まった #cordovajp

suzuki@suzuki

Cordova でハマったこと。Android 4.4.4 で画像アップロードできない。Cameraプラグインが古かった。バージョンアップを適宜しないとダメ。 #cordovajp

suzuki@suzuki

ハマったこと iOS。ソフトウェアキーボードの挙動が怪しい。ナビゲーションバーのヘッダが追従しなかったり。頑張って修正した。ionic keyboard プラグインを使うといいらしい。 #cordovajp

suzuki@suzuki

ハイブリットで作ったことは正しかったと確信している。ゲームアプリなどではキツイと思うが、業務アプリはハイブリットでいけると思っている #cordovajp

suzuki@suzuki

CordovaとElectron(Atom Shell) #cordovajp
electron知名度ひくいなー(´・ω・`) #cordovajp

suzuki@suzuki

ELECTRON とは? もともと Atom Shell、これもハイブリットアプリの一種。 #cordovajp

suzuki@suzuki

Node.js を基盤として動作。
% npm installl electron-prebuild
#cordovajp

suzuki@suzuki

様々な ELECTRON アプリ。Atom Editor, Slack, Visual Studio Code, Monaca Localkit #cordovajp

suzuki@suzuki

HTML5 + node.js + Chromium。ネイティブ連携は ipc, npmモジュール #cordovajp

suzuki@suzuki

かみやん@kamiyam

後でTL追う。案件がらみ ionicで使ってます #cordovajp

suzuki@suzuki

Monaca チームの一部はインドで作っている。 #cordovajp

Kei@kei_kaw

ELECTRONあついっすね
#cordovajp
インドで作らせたら日本語が文字化けしてるんだけど、向こうのチームだと化けてるけどまあ日本語表示されてるだろって思ってそう、っていうエピソード #cordovajp

suzuki@suzuki

これで終了。 #cordovajp

suzuki@suzuki

以前は Titanium Mobile などがあったが、最近は Electron, React Native なども出てきているので、今後も追っていきたい。 #cordovajp

Satoshi Watanabe@sassy_watson

そういえば、cordovaのpluginのテストについて以前まとめたことがあるので、ご参考までに。
qiita.com/sassy_watson/i… #cordovajp
先ほどのLTのスライドです。お疲れ様でした。 #cordovajp slideshare.net/yusukixs/cordo…

k1LoW@k1LoW

@suzuki に話しかけたいことがあってTwitterみたら #cordovajp のTLにいて、なんだろーとおもって YouTube の過去勉強会を見始めたら @anatoo が発表していた。ということで第1回を聞きながら仕事。まだ何かはわかっていない。

hkusu@hkusu_

自分の中でCordovaプラグイン書ける感でてきた #cordovajp
今日の発表で何名かの方から「これならハイブリッドアプリでやれそう」と感想をいただきました。ありがとうございます。皆でCordovaの成功事例を作っていきましょう! #cordovajp

Simon Sasaki@simonTokyo

#ionic でなんかアプリ作りたい気分になった。#cordovajp
はてなブログに投稿しました #はてなブログ #cordovajp
第6回ApacheCordova勉強会に参加しました。 – hkdnetの日記
hkdnet.hatenablog.com/entry/2015/06/…

あひるん。@ahirun0426

関の分のスライドを上げておきます。
slideshare.net/yasuharuseki7/…

#cordovajp

https://matome.naver.jp/odai/2143489732547843301
2015年06月23日