このさんの日記

takono(このさん)の日記です。アジャイル開発とアプリ開発周りが好きです。

万引き家族を見てきた

なんで見たの?

渋谷シネクイントで万引き家族を見る。
カメラを止めるな!見る予定だったが
1人だったので粛々と他の映画館では既に上映終了している作品を選んだ。

雑な感想

家族の形とは何なのだろうか?と問うてくるミステリーだった。
どういう家族構成なのかは最後の最後までわからないが
万引き家族」には普通の家庭と同様の生活あって愛がある。
家族団らんのほんわかさと時折覗かせるスリリングな表情による緊張感が非常によいバランスで退屈しなかった。
 

気づき

映画では子どもたちが「お父さん」「お母さん」と呼ぶかどうかが重要なポイントになっている。
自分自身は両親のことを中学生くらいから呼びかけることはしていない、なぜならママ、パパ家庭だったからである。
恥ずかしいからなあ。

iOSDC2018の感想とおすすめポイントとやる気を出す話

iOSDC2018の感想

最高でした!!
前夜祭から3日目まで参加して多幸感の溢れたイベントでした。
技術者としてのモチベーションに繋がる4日間でした。
さあ今からがんばるぞっって思ってブログを書いています。
おすすめポイントを3点だけ書きますね

①実践的なトークばかり!(宣伝が少ない)

カンファレンスは商品説明会的なところが多いんですが
このカンファレンスは現場の人が優秀な技術者の方が生きたトークをしてくれます。
個人的にはサービス開発者としての苦労話の共有ができたのが大きな収穫でした。

②ごはんが美味しい、ビールが美味い

お昼ご飯がとても美味しいです。
いい写真が撮れたらグルメレポを載せたかったくらいですが
不味そうに写ってるのしかなかったので諦めます。
そしてビールスポンサーさんがいらっしゃって
ビールを飲みながら楽しいLTを聞くことができます。
私はドケチな人間なのでですが正直ごはんとビールだけで元が取れるかもしれない

③あったかいんだから

優しくて騙されてるんじゃないくらいみんな優しいです。 スタッフの人達はみんな挨拶をしっかりしてくれます。
トークで席が埋まってくるとみんな席詰めしてくれます。
私の独り言のような絡みにも付き合ってくれます。
楽しくやってることが一番重要です。
不機嫌そうな人とか怒ってる人がいなくてよかったー (私は褒められて伸びないけど、怒られると縮むタイプです)

心配なところ

ホスピタリティ溢れすぎて無理がないのかなあというBCP的観点な心配。
GUESTとしては楽しかったけど裏側は大変なんだろうなあ。。。 来年は参加費30,000円でも参加するので開催お願いします!

これからの動き方

1年後にはiOSDCに登壇できるくらいの発信力と技術力がほしい!
そのために日々の業務に追われて満足しているだけではだめだなあ。。

でも!! ストレスを感じるのも嫌なので気を使わない範囲で頑張ろう。

とりあえずISUCONに向けて準備を進める!

iOSDC2018 Day3

はじめに

3日目も朝から参戦してきました。

プッシュ通知はどのような進化をたどってきたか?

iOS7からiOS12までプッシュ通知の変遷がおさらいできる内容であった。
サイレントプッシュのjsonの中身とかが個人的にすごく懐かしかった。
プッシュの歴史を理解してユーザーにアプリを開いてもらう工夫を続けたい。

ライブ配信アプリのアイテム再生をMetalで実装する事になった話

動画上に透過のアニメーションを入れるのに悪戦苦闘した話。
mp4での透過動画の実装方法やOpenGLESからMetalへの書き換えまでと
非常に実践的で学びの多いトークでした。

AutoLayoutエラー診断所 ~発狂しないためのデバッグ手法~

ライブデバッグで今すぐ使えるAutoLayoutのデバッグ手順の説明でした。
LLDBの活用などは全く意識したこともなかったので
今後のデバッグに使っていきたい。
あとレイアウト系のエラーログを図式化してくれるWTFも初めて知った。
ぜったい役に立つよね。。。
www.wtfautolayout.com

iOS アプリの開発速度を70%高速化したデバッグノウハウ

iOSに限らずソフトウェア全てに共通する姿勢に対するお話。
* 不安駆動開発で不安のパターンをためていく。
* テストの自動化を苦しんでも進めていく。
2点が非常に心に残るお話でした。

iOSDC2018 Day2

はじめに

iOSDC2018 2日目の感想を記述する。

In-App Purchase再考

ISPAppleストア経由の課金システムのIAPの比較。
一般的なISPが5%以下なのに対してIAP手数料が30%で
しかもコンビニ決済に対応していないなどデメリットが多い。
しかし課金系の処理はIAPを経由しないとアプリ申請時にRejectされる。
しかもユーザー体験としてIAPはすごい優れている。
総合的に考えて決済業者を選定する必要がある。

東急ハンズのP2Pレジ間通信2018

内製でレジアプリケーションを作った話し。
P2P通信を実現するMultipeerConnectivityで店員側とお客さん側のアプリをつなぐ。
セミルフレジでは安定性を増すために
MultipeerConnectivitiyの他にAWS SQSで通信を冗長化している。
先勝ちの方式にしているが、実際はAWSの方が早い方が多い。
ただオフライン時には前者の通信でレジの機能は担保できる。

Live coding: ReactorKit

ReactorKIT

Auto-Renewable Subscriptionsを5年間運用した歴史から学ぶ注意点

決済の実施の前に決済が必要/不要な場合の処理が大切。
ランディングページはWKWebViewで行う
自動更新購読型課金の難しさがある
インストールページ、登録画面で説明の必要がある。 しないとReject!
価格変更時にいろいろ起こる。

LIFULL HOME'S「かざして検索」リリースの裏側

YOLOで学習データを作成している。
学習モデルは必要なときにダウンロードしておく。 アプリ側はARKitで実装する。(ここは簡単らしい、、)

iOS × GraphQLの嬉しみとつらみ

GraphQLはアプリ側としてはレスポンス型の指定など魅力的。
ただエラーハンドリングが苦手でサーバー側でいろいろやらなくてはいけない。。。

AWSをやめてから90日経つとアカウントごと削除されるが、、

前提

GraphQLを試したくて久々にサーバー立てるかーと思って
マネジメメントコンソールにアクセスしたら下記の表記。

f:id:takono0807:20180902090442p:plain

理由

「おかね払ってないでしょう?」とまず言われますが
請求書を見ても4月の支払いはしっかり完了しています。
そんで何かしらの理由で4月にアカウントを止めたことを知る。

アカウントを止めてからから90日が経つと
アカウントが完全に削除されるらしい

https://aws.amazon.com/jp/premiumsupport/knowledge-center/reopen-aws-account/

解決策

新しくアカウントを作り直しましたとさ。

注意点

メールアドレスは同じのを使えないので要注意です。
使いたいなら直接コンタクト取らないと厳しそう。

Resume 201808

はじめに

いつでも転職できるように履歴書を更新していこうと思う。 いつか年収1000万くらいになって美人な彼女を見つけて素敵な過程を築きたい。 という野望をもっています。 リンクトインを貼ると個人情報が結構漏れてしまうので怖いので貼りません。
私に興味を持っていただいたいら下記アドレスにご連絡ください。

takono0807@gmail.com

職務経歴

2013年10月 Sierに就職

  • クーポン配信サービスの新規開発PJ 3年

2017年 9月 Webメディア系の企業に就職

スキルマップ

  • スクラムマスターとしてのファシリテート能力、チーム開発推進の経験を12ヶ月
  • TOEICスコア: 710 英語の文献を読むことに抵抗なし
  • Swift: UIKitの使用は問題なく行える。Alamofire用いた非同期処理は難なく扱える
  • Android: 半年程度、 ライフサイクルの対応を終える程度

アピールポイント

  • 基本できないことはありません。無茶振り大歓迎です。何でもなんとかします。
  • 20代独身で結婚予定もないので給料は安くて大丈夫です。
  • ストレングスファインダーは 社交性、社交性、最上志向、ポジティブ、包含、自己確信
  • 応用情報技術者程度のリテラシーをもっています
  • フルマラソンのベストタイムは2時間47分台です(要は元気です)

iOSDC2018 Day1

はじめに

iOSDC2018 Day 1 (8/31)に行っていきました。
感想と持って帰ってきたことを記述します。 OPENINGやランチのことは他の記事で書きまーす。

最初から反省

  • MBPの電源がお昼の段階で切れたので明日は2台持ちで参ります
  • トークを詰め込みすぎて集中力が切れてしまったところがあったので、無理せずブログを書く時間にあてよう
  • ちゃんと予習をしよう。
  • Redux入門しよう →

トークの感想

登壇者の皆様、本当にありがとうございました。 目的と雑感とNextActionを書いていきます。

複数のライブ映像を同期再生するのが大変だったので知見をお伝えします

  1. 目的
    プログラム的なところではなかく複数のライブ映像ってのでリモートワークで使えんかなあと思ってエントリー
  2. メモ
    iOSで複雑な動画配信を行う場合は、AVPlayerを使用する必要がある。 いくつかKVOすることでうまくいくらしい。 そしてAndroidExoPlayerがその辺をよしなにやってくれる
  3. 雑感
    配信の同期を行うために疎結合ではなくManagerを作るという当たり前な点に普通に納得した。 動画配信をうまくやっているサービス自体そんなにないイメージであるから知見などが少なそうだが
    このトークの経験を業務にも活かせる場面があったらいい。

  4. 資料
    スライド
    公式Doc

リアルタイム革命

  1. 目的
    GraphQLに興味がアリマス
  2. メモ GraphQL Subscriptionでリアルタイム更新しようぜ!
  3. 雑感 リアルタイム通信の歴史の部分でお腹いっぱい感があった。
    正直、ネットワーク周りの知識(L2, L3など)の知識が薄いので、背伸びした感がでた。 でもアプリ開発者としては早く業務でGraphQLを試してみたい。
  4. 資料
    スライド
    AWS Amplify
    AWS AppSync

Swift Compilerの最適化入門 - AllocBoxToStack編

  1. 目的
    Swiftの中間言語の意識はかなり薄かったので、とりあえず何かしらインプットするきっかけほしかった
  2. 雑感
    Swift Compilerは名前だけ、LLVMは中身見たこともありませんでした。(おはずかしい)
    swiftcコマンドも使ったことがなかったの今後は意識していきたい、、が
    ちょっとまだ興味が向けられる状況ではないので
    いつかのために頭の隅に置いておく。
  3. 資料
    スライド
    https://blog.waft.me/2018/01/11/swift-sil-2/

海外展開を目指すアプリでセキュアで速い画像と動画の閲覧を実現した話

  1. 目的
    私が作っているアプリは海外展開を一切していないので
    こういう機会がないと聞けない話と思ったから
  2. 雑感 海外からS3のデータをとりにいこうとすると日本のサーバーまで来るからめっちゃ時間がかかる。
    CloudFlontにS3の署名付きURLをキャッシュしておいて日本へのアクセスを極力少なくしているらしい。
    バックグラウンド時とか寝ているときに必要なもしくは必要な大きいデータを勝手に保存しておくような標準を早くだしてほしいなあ笑 海外展開すると海外にデバッグにいけるのが普通に羨ましいと思いました。(中学生くらいの感想)
  3. 資料
    スライド
    https://qiita.com/kumatronik/items/c542feac77b08c3ca646

とある端末の触覚技術 -フィードバック-

  1. 目的
    アプリにTapTicのフィードバックをいれたい!!
  2. 雑感 FeedBack入れるのはあっさりできそうだけどタイミングがすごい重要!
    逆にすぐ実装できるからエンジニア主導でがんがん提案できそうなところ。
// フィードバックを引き起こす!
let generator = UINotificationFeedbackGenerator()
generator.prepare()
generator.notificationOccurred(.success)
  1. 資料
    スライド
    UIFeedbackGenerator - UIKit | Apple Developer Documentation

宣言的UICollectionView

  1. 目的
    はじめてUICollectionViewの実装を見たときに
    「なんでこの人はこんなめんどくさいことを、ひどいコードでやっているんだろう」
    と真面目に思いました。
    numberOfItemsとか意味わからん 、、 その頃の自分に戻った気分で聞きに行きました。
  2. 雑感
    UICollectionVIewの間にフィルターかアダプターと呼ぶか難しいcellDeclarationを定義することで
    宣言的に(画面と対応した状態で)レイアウトすることができています。
    enumに定義したcellに対して処理を行うので非常に見やすかったです。
    ただ質疑にもあったように慣れたメンバーが揃ったチームだと逆に勘違いとか発生しちゃいそうだなあとも思う。

  3. 資料
    スライド

iOSと(深層)強化学習

  1. 目的
    強化学習というのがパワーワード過ぎて引き寄せられました。 もはやあんまりiOSもSwiftも関係ない気がするが、、、
  2. 雑感
    強化学習については非常にわかりやすかったです。
    人にてきとーな説明をできる程度には理解することができました! ただ深層強化学習については知識が追いついていないことが多く置いてかれてしまいました。
    今後AIに仕事を取られないためにもAIを支配する側に回りたい。
    我妻さんが書いたディープラーニングの本もぜひ読みたい。

  3. 資料
    スライド
    ただの強化学習のサンプル https://github.com/yukinaga/CartPoleSwift
    深層学習しちゃう方のサンプル https://github.com/yukinaga/CartPoleDeepSwift

レガシーなアプリケーションの60fps化を目指す為にやっていること

  1. 目的
    アプリのfpsの増加は常に追求する課題である。 (かっこよくいってみる)

  2. 雑感 正直、FPSもなんだか知らんかったのでちょっと勉強した↓ https://nvr.bz/topics/knowledge/what-framerate.php Xcodeで実機に流し込めばFPSを測れるようだ https://developer.apple.com/jp/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/ToolsOverview/ToolsOverview.html

発表内容としては対象の画面をReSwiftでReduxに、画像読み込みにはkean/nuke、UICollectionViewの生成には独自のライブラリを用いて差分更新という素敵な内容であった。
imageViewやUILabelにはbackgroundColorを設定するという具体的な内容があって本当にためになるトークでした。

  1. 資料
    スライド
    kean/Nuke

SwiftでReduxを実現するReSwiftを使ってみた

誰も見ていない最後に軽く反省

やっぱり経験不足というより勉強不足を実感した1日目、、、