LoginSignup
5

More than 5 years have passed since last update.

potatotips #28 (iOS/Android開発Tips共有会)に行ってきたメモ

Last updated at Posted at 2016-04-20

イベントページ

PlaygroundでカスタムUIのプロトタイピング

発表者

milkit/ミルキット
iOS枠
eureka/couples iOS
@Milk_t

発表内容

AppStoreのバナーと同様な挙動をするカスタムUI
フルビルドで3-5分、インクリメンタルで1分

空プロジェクト作って実験してた
-> Playgroundつかったら楽なんじゃね?

PlaygroundはSwiftのコーディング環境

XCode 7.3からタッチイベントも処理してくれるようになった

Q。アニメーションも見れる?
OK

Q. AutoLayoutも効く?
OK、たまに動かない

Q.ViewControllerの繊維もOK?
OK

まとめ
Xcode7.3から実用的になってきたので使ってみるのもアリ

eurekaでSwiftのスタイルガイド出してる

API仕様書をいい感じに管理する

発表者

yuyakaido/ゆーやかいどー
Android枠
@yuyakaido
Androidチームリーダー
テストおじさん

発表内容

よくある例
- Github wiki
- Google Spreadsheet <- カップルズはこっち

仕様書のあるある問題を抱えてた

よくあるサービス
- Apiary
- Swagger

Apiary
- Markdownっぽい感じで書ける
- API Blueprint
- モックサーバの作成可能

Swagger
- Yamlっぽい感じで書ける
- OpenAPI
- モックサーバの作成可能

Swaggerのほうが少し高機能
クライアントコードの生成が可能、GoogleやMSがSwaggerベースでいろいろやってる

クライアントコードはレスポンスの入れ物クラスを自動的に作ってくれる

まとめ
- wikiとかSpreadsheet管理はつらみ
- ApiaryやSwagger使うと少し幸せになるかも
- Swaggerが今後のスタンダードになりそう?

Debug Remote / Local Notification on watchOS

発表者

shingt/しんじーてぃー
iOS枠
@shingt
発表資料

発表内容

けっこうコンポーネントが多いのでRemote or Localを解説

デバッグで困った
リモート、ローカルで実機、シミュレータ上でどうするかのお話

Remote
シミュレータ上は簡単
Xcodeに予め用意されてるから困らない

Local
簡単にテストする仕組みが無い
デバッグ時にRemote、プロダクション時にLocalにしようとしたら引数の違いがあり簡単にテストできなかった
間にラッパーオブジェクトを用意した

実機上でのテスト
Remoteと違って送りにくい
iOSとおんなじような感じで

Sleep状態にしないと通知が来ない

まとめ
Remote:簡単
Local:工夫が少し必要そう

Chrome Custom Tabs を導入した話

発表者

shihochan/しほちゃん
Android枠
@shihochandesu
サイバーエージェント
Spotlight
キュレーションメディア

発表内容

導入までの経緯
記事をネイティブで作りなおしてほしいと上司からのお願い

引用記事で外部リンクが多い
→WebViewつらい。Chromeにすると別アプリ立ち上がってる感があるまくり

内部コンテンツのようにWebページをChromeで開くことができる
v23.1.0~
min: 15
chrome: v45~

条件を満たさないと標準ブラウザで開く

Chrome Custom Tabs早い

CustomTabsIntent.Builderを作る
メソッドでいろいろと設定できる

pre-fetch
chromeリポジトリのhelperが便利
Tabbyがわかりやすい

SecondaryToolbar
v23.2.0~
下に最大5つまでアクションボタンをおける
chrome:v49
条件を満たさないと何も表示しない
→なので追加しておいて損は無い
あとからADDしたものが右に来る
スクロールと連携して自動に隠れない

RxSwiftのDriver

発表者

Motoki Narita
iOS枠
@mo_to_44

発表内容

Driverを知る
Units
日本語訳を書いてる人がいる

RxExampleのソースを読む
GitHub Signup
DriverとObservablesの2パターンのサンプルがある

コード見ながらDriverじゃないパターンとDriverのパターンを比較

8/20 iOSに開発者向けイベントがある

広告SDKのお話

発表者

Shigeki Yamato
シゲキヤマト
Android枠
@heki1224

発表内容

vvakameさんのSDKディスのツイート

みんな自前アプリに広告SDK入れてるし、入れてアプリが不安定になってる

SSP
Ad Network
DSP
純広告

みんなSDKがおんなじに見える理由
広告商品が標準化されてる

ネイティブ広告
- アプリの一部のような広告

動画リワード広告
- 動画を実際に流して広告する

Swiftにわか勢な自分がMacアプリを作ってRxSwiftを使えるようになった話

発表者

y.imajo/イマジョウ
iOS枠
@yimajo
stargzr

発表内容

ハッシュタグをおって画面上にツイートを流してくれるアプリをRxSwiftで書いた
http://github.com/yimajo/MeetupTweet

発表時にマルチディスプレイ対応してないとメインで出ても意味ない
クラッシュ時にもわかるように60秒に1回赤文字を出してる
RxSwiftの解説
merge

レイヤード風アーキテクチャ

AndroidScreenMonitorのアンチパターン

発表者

tarotaro
Android枠
@tarotaro4

発表内容

Windows編
jarをexe化する
Launch4j
jreのインストールは必要

Vysor(Bata)が最近のはやり

休憩

必死に前半の内容をまとめる
お腹減る

Repository pattern in Swift

発表者

naoty/なおてぃー
iOS枠

発表内容

リポジトリパターン
- リポジトリとは、データの取得、保存、削除のためのインターフェース
- リポジトリを使ってデータにアクセスする
- どこにデータを保存しているかは知らなくて良い

問題点
- データへのアクセスが非同期
- クエリやソートはどうやって指定するのか
- バックエンドに若干依存する?
- リポジトリが増えたらコピペが増えそう

Promise
モデルじゃなくてタスクを返すようにする

naoty/AnyQuery
中間オブジェクト

汎用的なリポジトリ型を定義する
- 型消去

応用例:キャッシュ

CQRSの考え方をモバイルに適用してみる

発表者

kgmyshin/(自分でもなんて呼んで良いかわからない)
Android

発表内容

CQRSとは?
コマンドクエリ責務分離

コマンドクエリ分離

「GETメソッドの中でUPDATEをするなみないな話」

EventSourcingありきで語られる

コマンド側とクエリ側を初めから分けて考える
Write系とRead系を分ける

設計がすっきりする

クイズとかゲーム系のReadしたものを加工する系は不向き

tvOS tips

発表者

koutalou/コウタロウ
iOS枠
iOS Clean Architecture

発表内容

MFのApple TV版

Traditional Apps
- ネイティブ、iOSのコードを流用できる
- MFはこっち

Client-Server Apps
- TVML、JSを使ったWebアプリケーション
- コンテンツを動的に変更できる

Parallax Effext

画面構成
- TabBaerControllerは上部に配置
- 戻るボタンはナビゲーションバーに置けなくてタイトルだけ

フォーカス
- Siri Remoteのタッチ部分をスワイプで選択を帰る
- スワイプの延長線上に移動するから配置に注意が必要

ストレージの制限
- アプリは200MB以下
- 重要なデータは保持しない

WebView非サポート

CocoaPods

文字入力
- とにかく難しい
- 以下に文字入力させないかがポイント

基本的なレイアウト
- 画面両端は指定のスペースが必要
- など

3種類の画像が申請時に必要

CI
非対応
- fastlane
- deploygate
対応
- crashlytics
- testflight

Building apps using CustomViews

発表者

KeithYokoma/キースヨコマ
Android枠

発表内容

Fragment
- ライフサイクルが多い
- デバッグ辛い
 - Fragmentが非同期で動く
 - Viewのロジックとかビジネスロジックがゴリゴリ入ってくるからテストしずらい

Square
 Presenterがビジネスロジック

Mortar and Flow
 Scoop
 ...

Flow
 アクティビティ1個
  バックスタック

Mortar
 Activity
PathContainer
Path
CustomView

○アクティビティがServiceにも置き換えれる
△非同期処理が未だある
☓マテリアルデザインのサポートが不十分

国際カンファレンスに登壇する - 応募編

発表者

shu223/シューツツミ
iOS枠
@shu223

発表資料

発表資料

発表内容

UIKonf
iOSCon
で発表する

招待枠じゃなくて、応募して審査して遠た

なぜ応募したか?

メリット
ログに残る
 英語でググッて来て見つかる入り口になる
著名な常連スピーカーの方々に自分の話が届く
 海外から仕事くるかも
 別のカンファレンスでも呼ばれるかも
海外に行けることが嬉しい・楽しい
 航空券代が出る
英語を必死で練習する機会になる
経歴にも書ける

CFPをどう見つけたか?

ググる
Lanyrd:まとめサイト
カンファレンス常連者のサイトを見る
talks/speakingみたいなページを見る。登壇予定があることもある
CFPは見つけづらい、CfPなしも多い
カンファレンス常連者をリストにいれてウォッチ

Proposalをどうやって書いたか

話したいネタを棚卸し
過去のカンファレンスの登壇内容を見てみた

歓迎されるっぽいTALK

スピーカーがその分野で十分な経験がある
その人ならではのバックグラウンドが生きる話
体系立てて話せる

AppLaunchChecker

発表者

magiepooh/まぎーぷー
Android枠

発表資料

発表資料

発表内容

v23.3.0で追加された
ホーム画面から起動されたかをチェックできるAPI

SharedPreferenecesにインテントのアクションとかカテゴリを見てるだけ
一度書き込まれてTrueになると消せない

過去に1度でもランチャーから起動したことがあるかをチェックするAPI

どこでつかうのかわからんAPI という結論

iOS Universal Linkについて

発表者

TachibanaKaoru/たちばなかおる
iOS枠
ボルダリング4級

発表内容

自分のアプリや他のアプリを起動するスキーム
ドメイン名でスキーム管理するからかぶらない

意識高いアプリはダメ

アプリも開けるけどもSafariでも開けるリンクがある

懇親会

こにふぁーさんの顔とアイコンが一致した

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5