56
iOSアプリ Ionic / 4D

iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

iOSアプリIonic / 4D

Page 2: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

4D ➡ iOS

4D

Web/Mobile

iOS native

Page 3: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

Ionic

代表的なハイブリッド・モバイルアプリ・フレームワーク

ハイブリッドとは・・・ WebViewを利⽤してネイティブ⾵に動作するアプリ

Onsen (https://onsen.io) Meteor (https://www.meteor.com) React Native (https://facebook.github.io/react-native/)

類似のフレームワーク

①ドラッグ/ドロップの画⾯作成ツール(Ionic Creator) ②おおきなコミュニティ・情報が豊富 ③4D Mobile powered by Wakandaとの親和性

ポイント

HTML

JavaScript

Page 4: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

Ionic Creator Pro

PRO

FREEテキストエディター

オンラインツール

HTTPS

Page 5: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

ワークフロー

フリー版

Ionic Creator HTML/JS/CSS

4D REST API

Web ⬇

REST API

iOS Native ⬇

REST API

① ② ③ ④

① Ionic Creatorで画面のプロトタイプを作成してダウンロード

② 4DデータベースにJSON/REST APIを追加

③ ダウンロードしたファイルを書き換えて4DのREST APIに接続

④ プロジェクトをビルドしてデバイスから4DのREST APIに接続

Page 6: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

⽤意するもの : Web

4D Developer ProWeb Server local + 1 IP address

Ionic無料アカウント 1 プロジェクト(公開) 基本エクスポート

Page 7: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

⽤意するもの : iOS

Mac

iPhone

X codeApple Developer Network アカウント

Page 8: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

⽤意するもの : iOS

① Xcode ② コマンドラインツール ③ Homebrew ④ Node ⑤ Cordova ⑥ Ionic ⑦ Deployment Tools ⑧ iOSシミュレーター

App Store xcode-select --install https://brew.sh/ brew install node npm install -g cordova npm install -g ionic npm install -g ios-deploy npm install -g ios-sim

iOSアプリをビルドするにはMac, Xcode, Deployment Tools, Ionicが必要

Ionicを使用するためにはコマンドラインツールとiOSシミュレーターが必要

WebアプリをネイティブアプリにラッピングするにはCordovaが必要

CordovaをインストールするにはNodeが必要

NodeをインストールするにはHomebrewが必要

iOSアプリを実行するためにはiPhone, Apple Developerアカウントが必要

1

2

3

4

5

67

8

Page 9: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

⽤意するもの : HTTPS

Let's Encrypt認証局発⾏証明書

http://kb.4d.com/assetid=77671

認証局発⾏証明書

⾃⼰署名証明書

OpenSSL

GENERATE CERTIFICATE REQUEST

GENERATE ENCRYPTION KEYPAIR

v14 MD5

v15 SHA-256

署名

Page 10: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

⾃⼰署名証明書

コマンドライン

openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 365 -keyout key.pem -out cert.pem

アルゴリズム ビット数

1年有効

Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:Tokyo Locality Name (eg, city) []:Setagaya Organization Name (eg, company) [Internet Widgits Pty Ltd]:4D Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []:localhost

Page 11: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

⾃⼰署名証明書

$address:="localhost" ARRAY TEXT($k;6) ARRAY TEXT($v;6)

MAKE CERTIFICATE (SHA256;2048;365;$k;$v;$req;$cert;$pubkey;$privkey)

$v{1}:="JP" $v{2}:="Tokyo" $v{3}:="Setagaya" $v{4}:="Miyako" $v{5}:=$address $v{6}:="[email protected]"

$k{1}:="C" $k{2}:="ST" $k{3}:="L" $k{4}:="O" $k{5}:="CN" $k{6}:="emailAddress"

https://github.com/miyako/4d-plugin-convert-certificate

プラグイン

アルゴリズム

ビット数

1年有効

Page 12: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

ワークフロー

フリー版

Ionic Creator HTML/JS/CSS

Page 13: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

ログイン

https://creator.ionic.io/app/dashboard/projects

ログイン

Page 14: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

ログイン

https://apps.ionic.io/apps/

Creator

Apps

Page 15: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

ログイン

https://apps.ionic.io/apps/

Page 16: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

ログイン

https://creator.ionic.io/app/dashboard/projects

+New Project

Page 17: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/dashboard/projects

Blank

プロジェクト

Page 18: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/dashboard/projects

プロジェクト

Page 19: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

リスト

List

Page 20: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

リスト

Page 21: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

ページタイトル

Page

Page 22: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

ページタイトル

Contacts

Page 23: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

リストアイテム

list item

Page 24: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

リストアイテム

いちばん

Page 25: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

リストアイテム

にばん

Page 26: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

リストアイテム

さんばん

Page 27: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

ページ

Add Page

Page 28: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

ページ

Blank

Page 29: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

ページタイトル

Page

Page 30: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

ページタイトル

Contact

Page 31: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

段落

paragraph

Page 32: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

段落

Page 33: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

リンク

Linklist item

Page 34: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

リンク

Contact-/page2

Page 35: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

プレビュー

Preview

Page 36: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

プレビュー

Page 37: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

プレビュー

Page 38: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

ダウンロード

ダウンロード

Page 39: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

ダウンロード

Page 40: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

https://creator.ionic.io/app/designer/

テスト

Page 41: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

ワークフロー

フリー版

Ionic Creator HTML/JS/CSS

4D REST API

① ②

Page 42: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

公開メソッド

C_TEXT($1)

QUERY([Contacts];[Contacts]ID=$1) C_OBJECT($record) OB SET($record;\ "LastName";[Contacts]LastName;\ "FirstName";[Contacts]FirstName;\ "id";[Contacts]ID;\ "Organization";[Contacts]Organization;\ "email";[Contacts]Email)

WEB SEND TEXT(JSON Stringify($record);\ "application/json")

Page 43: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

公開メソッド

C_TEXT($1)

ALL RECORDS([Contacts]) C_OBJECT($template) OB SET($template;\ "LastName";->[Contacts]LastName;\ "FirstName";->[Contacts]FirstName)

WEB SEND TEXT(\ Selection to JSON([Contacts];$template);\ "application/json")

Page 44: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

公開メソッド

C_TEXT($1)

$param:=Replace string(Substring($1;2);"@";"";*) QUERY([Contacts];[Contacts]LastName=$param+"@";*) QUERY([Contacts]; | ;[Contacts]FirstName=$param+"@") C_OBJECT($template) OB SET($template;\ "LastName";->[Contacts]LastName;\ "FirstName";->[Contacts]FirstName;\ "id";->[Contacts]ID;\ "Organization";->[Contacts]Organization;\ "email";->[Contacts]Email)

WEB SEND TEXT(\ Selection to JSON([Contacts];$template);\ "application/json")

Page 45: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

公開メソッド

C_TEXT($1;$path;$template;$json)

$path:=Get 4D folder(HTML Root folder)+\ "4D"+Folder separator+"contacts.4dtag" $template:=Document to text($path;"utf-8") PROCESS 4D TAGS($template;$json;$1) WEB SEND TEXT($json;"application/json")

Page 46: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

公開メソッド(プロパティ)

Page 47: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

ワークフロー

フリー版

Ionic Creator HTML/JS/CSS

4D REST API

Web ⬇

REST API

① ② ③

Page 48: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

Angular

テンプレートcontact.html

contacts.html

サービスservices.js

ルーティングroutes.js

コントローラーcontrollers.js

Page 49: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

ワークフロー

フリー版

Ionic Creator HTML/JS/CSS

4D REST API

Web ⬇

REST API

iOS Native ⬇

REST API

① ② ③ ④

Page 50: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

エミュレーター

ionic serve

cd ~/desktop

ionic start Contacts blank --v1

Page 51: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

エミュレーター

ionic build ios

ionic emulate ios

Page 52: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

デバイス

X codeアカウントの設定

Page 53: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

デバイス

X codeアカウントの設定

Page 54: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

デバイス

X code署名の設定

Page 55: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

デバイス

X code署名の設定

Page 56: iOSアプリ - 日本ftp.4d-japan.com/00_DevCon/2017/slides/ios-app.pdf · 2017-05-10 · ワークフロー フリー版 Ionic Creator HTML/JS/CSS 4D REST API Web ⇩ REST API iOS

デバイス

ionic build ios --device

ionic run ios