20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と...

16
Copyright © 2016. All rights reserved. 2017 年 03 年 11 年 (JAWSDAYS) 年年年年年年年年年 年年 年年 年年年年年年 iPad POS HandsPOS AWS 年年年年年年
  • Upload

    -
  • Category

    Software

  • view

    777
  • download

    0

Transcript of 20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と...

Copyright © 2016. All rights reserved .

2017 年 03 月 11 日 (JAWSDAYS)

ハンズラボ株式会社 黒岩 裕輔

東急ハンズの iPad POS 「 HandsPOS 」と AWS の付き合

い方

Copyright © 2016. All rights reserved.

自己紹介

2

Yusuke Kuroiwa ( きんちゃん。 ) ハンズラボ株式会社

iPad POS アプリケーション設計・開発・導入・設置・運用

iOS Engineer iOS に関わること全般担当

iOS から AWS に触れるバックエンドの部分は担当

MDM (Mobile Device Management) 管理

@wa_kinchan

@wakinchan

Copyright © 2016. All rights reserved.

ハンズラボ?

3

東急ハンズのシステム子会社

内製 東急ハンズの各種システムの内製開発と運用保守 MD 、 CRM 、 POS

外販 自社開発の経験を活かした受託開発、内製支援

Copyright © 2016. All rights reserved. 4

アジェンダ

1. 東急ハンズの POS 概要

2. 開発環境等

3. バックエンド (AWS) の設計思想と工夫点

Copyright © 2016. All rights reserved.

東急ハンズの POS 「 HandsPOS 」概要

5

自動釣銭釣札機

一般的な POS 機能は全て搭載 ただ無駄な機能は削ぎ落とす シンプル設計に

操作性の飛躍的向上

自動釣銭機、バーコードスキャナ 連動

現在クレジット、電子マネー機能開発中

レシートプリンタ バーコードスキャナ

POS

Copyright © 2016. All rights reserved.

東急ハンズと HandsPOS について

6

売上高: 948 億円( 2016 年 3 月度)

店舗数 : 計 81 店舗 (HandsPOS: 40 店舗 ) レジ台数 : 計 800 台 (HandsPOS : 200 台 ) 商品件数 : 100 万件

Copyright © 2016. All rights reserved. 7

アジェンダ

1. 東急ハンズの POS 概要

2. 開発環境等

3. バックエンド (AWS) の設計思想と工夫点

Copyright © 2016. All rights reserved.

HandsPOS アプリ開発環境

8

Lang: Swift 3.0 Swift 1.2 のときに開発着手 Swift のコミュニティが活発 (meetup, Conference..) framework が豊富 Types, Protocol, Enum(Associated Value)..

CI: CircleCI Dependency manager: Carthage , CocoaPods Lint: SwiftLint Prototype: Sketch Git: GitHub (Pull Requests 開発 ) Communication, Bot: Slack

Copyright © 2016. All rights reserved.

HandsPOS アプリのテクノロジ

9

AWS 設定データ、 API 、ポイント付与

WebSocket iOS とレシートプリンタとの接続

Realm マスタ、取引の CRUD

P2P Multipeer Connectivity: iOS 同士の接続

SwiftTask Promise

RxSwift Reactive

Copyright © 2016. All rights reserved.

AWS と iOS の相性

10

柔軟性

SDK

aws-sdk-ios v2 https://github.com/aws/aws-sdk-ios 何かしらの問題があっても Issue 立てたり、 Pull

Requests を送ったり出来るので、プログラムに対して言及できる

Cognito を利用した安全なリソースへのアクセスが可能

Lambda 、 SNS 、 S3 など簡単に Backend との連携が可能

コスト

AWS は実行、利用した分だけ、課金が発生

コスト削減は設計次第

Copyright © 2016. All rights reserved. 11

アジェンダ

1. 東急ハンズの POS 概要

2. 開発環境等

3. バックエンド (AWS) の設計思想と工夫点

Copyright © 2016. All rights reserved.

取引データ連携 構成図

12

Copyright © 2016. All rights reserved. 13

取引データ連携 構成図 : iOS から見る AWS 安全な AWS リソースへのアクセスのため Cognito を介する

Lambda 経由で情報をアクセス Lambda ⇒ DynamoDB Lambda ⇒ S3

iOS アプリのアップデートは時間がかかる 機能追加や不具合修正は、 Lambda の修正で完結出来る

Copyright © 2016. All rights reserved. 14

取引データ連携 構成図 : 設計思想、工夫点

EC2 は極力使わない 基本的にユニケージ (shell script) を使う部分のみに抑える

S3 の ObjectCreated イベントでの Lambda がたまに発動しない リカバリ方法を考えるか、違う方法にしよう

DynamoDB のキャパシティは最初から大きめに設定 基本的に何が置きてもいいよう、繁忙期なみのキャパシティで運用 今後、店舗が増えてもすぐさま対応できる

Copyright © 2016. All rights reserved.

HandsPOS は他にない POS を目指して

15

より良い設計、アーキテクチャ、実装へ!

HandsPOS アプリを更に改良!

カスタマーディスプレイの有効活用!カメラでポイントカード付与おすすめ商品サジェスト機能

電子レシート

店員に配っている iPod touch との連携 先に商品だけスキャンしてレジと連携 クレジットならその場で決済

Apple Pay

Copyright © 2016. All rights reserved.

We are hiring!

16

ハンズラボではエンジニアを募集中です!

弊社ホームページ、 Wantedly にてご応募ください

AWS Infra EngineeriOS EngineerWeb App Engineer