I joined Safie!
It has been awhile since I joined but I finally wanted to write about me joining Safie. I mean it has been awhile since I have written a blog on my personal Hatena in the first place. The reason I waited so long is so that I would have more interesting things to write about and introduce you to Safie now that I have gotten used to it (and that my trial period is over 🎉).
So the reason that I joined Safie is that I was really interested in their product/service, their mission, and their vision for the future. "Create a better future with intelligent vision". We are a lot more than just security cameras, we are "a cloud-based video management platform which brings our customers a new standard to manage their video assets anytime and anywhere." How we are growing not just in the Japanese market but pushing into global ones as well is a really exciting prospect. My speaking Japanese and English can really be put to use I hope!
Another reason I wanted to join was the potential. I have been working with iOS for 10(?!)ish years now and I want a chance to spread my wings and try some new stuff as well. Android and Server-Side are one of the things that I want to sink my teeth into to broaden my horizons and even make me a better iOS Engineer. That way I can make better proposals while seeing all sides of the development puzzle. For anyone that doesn't want to be stuck in only one role Safie might just be the place for you.
The iOS project is another thing that attracted me to Safie. It has had a long(and a bit tumultuous) history so there are lots of things to get done. We are working on a re-architecture and when making new views we use SwiftUI as much as possible. There are of course some legacy costs when working on a project that has been alive this long but it is the same anywhere you go.
I also want to get Safie's name out there in the mobile community. After a bit of a hiatus the mobile team is revamped and we are doing some fun things, most recently 360 video in our mobile apps. So we hope to get out and meet more mobile engineers at events, speaking about our work, and hopefully soon we will host our own mobile LT event. If any other companies are interested in holding an event with us send me a message on X(Twitter).
We just moved into new offices at the end of 2023 and they are amazing! Enough to make you want to go to the office(even if you don't have to).
Hopefully some of what I have said has interested you. Please take a look!
iOSDC 2018 - ビールフェス!
ルーキーズLT練習会

自信満々で行くつもりでしたが人の前でやるのは全然違いますよね。。。は自分の練習会のテーマでした。
メチャクチャいいアドバイスされたし、ちゃんと5分で終わり切るようになりました。 トークのフローももっと分かりやすくなってよりいい結果出せるようになったと思います(5分微妙に超えてしまったが。。。)
レーキーズのマスト!来年もやって欲しいです(ルーキーズに入らないと思うけどw)
Opening Party
オプニングパーティー行くかどうか迷っていたけど、行ってよかったです!
人数はちょっと少なめでしたがドンドン酒が入ったら盛り上がってみんなダンスしていた。
エンジニアの皆さんはあまりダンスパーティー行かない系気がしますがプログラミングじゃないイベントも楽しいこと出来てありがとう!
前夜祭

iOSDC = ビールで前夜祭の祭り感は素晴らしかったです。
ビール飲みながらトーク聞くのは楽しかったし、スピーカーさんもconfidenceありましたw。
ほとんどトラックAでしたが最後のRay Fixさんの見ないとと思って最後だけBでした。
ARKitのための3D算数 - Speaker Deck
思ったより(甘いね〜)算数が必要だった。使ってみたいです!
Working in a multi-cultural environment with a global app
こちらは結構楽しみにしていたトークですね、外国人のエンジニアとして。 ドキュメントが大事でグローバルチーム誰でも何時でもソリューション解決できるような細かさ書かないとダメ specification - implementation - testingサイクルは大事ですね〜
Code PushとReact Nativeで緊急OTAリリース!了解!
コードプッシュは結構良さそうけどJSで開発するのはあれだな。。。
ツールとして利用するUIテスト
UI Tests書ける余裕あったら試したいですね UI Testは完全に自動化はまだ難しい、手動のチェックはやるべき。 xcode 10 parallel testsの結果は意外でした、端末によって変わると思いますが二つのsimulatorは一番早かったのはびっくりでした。
UITests: Lunch unit testing. Testまとめてくれるツール: TestSummaries is a great tool
アルゴリズムを通じてよりよいアプリを
iOS 12の高速化はアルゴリズムのおかげでコード側で自分の改善できる。
Ray FixさんのLandau O説明めっちゃ分かりやすかったので是非皆さん見てください。
気を付けるポイント:
- update constraintsは120回/s呼ばれているので思い計算などやめましょう
- raw loopsのパフォーマンス悪いのでやめましょう¥
- bridging between objc and swift has a large cost(例えば:最初からNSRange使うより、SwiftのRangeをObj-cのNSRange変換が+400msになってしまった)
Day 01(8/31)
Markdownをリアルタイムに解析する
いいMacOsのMarkdownエディター欲しいな〜 これはいい一歩だと思います。
Swift 4.2 はどのような進化をしているのか
超楽しみしている機能: - shuffleの機能とarc4必要ない - isHiddenのtoggle出来る - Dynamic lookup強化 - コンパイラーのバージョンまでチェックできる
Swift Compilerの最適化入門 - AllocBoxToStack編
ずっとSwiftC興味あったよね、本当に分かりやすい発表でした。 SIL - Swift intermediate language Swiftに100以上のoptimizationsあります。 一つは: https://github.com/apple/swift/blob/master/lib/SILOptimizer/Transforms/AllocBoxToStack.cpp

コンパイラから紐解くSwift method dispatch
これは本当に参考になりました。今まで使っていたけど大事さこの発表で分かりました。 final and private ちゃんと使っていきましょう internalクラス使ってもdynamicになってしまう
Day 02(9/1)
iOSでSwitchの複数ディスプレイ配置調整を実装してみた
Multipeer Connectivityの面白い使い方。接続するのは大変そうだけどいいアイデア。
iOS 8の頃ずっと使っていないのでこれをみてもう一回使って見たいです。
詳解Fastfile
これはやばい発表でした。自分が結構今までのFastfileの苦労したところありました。
けどまだまだでした。完全な自動化まで行かなかったのでこれからもっと頑張りたいと思いました。
rubotyでspellcheckerできたらコードレビューが超早くなる気がする。
binding_pryとvim: syntax=rubyもっと使うようにしましょう!
Depth in Depth
素晴らしいdepthの説明だけど、リアルタイムできない。。。残念 子供生まれておめでとう!
機械学習の初心者がCreateMLでレトロゲームのカート認識

自分の発表ですw LTでしたがiOSDCで発表する目標達成できて嬉しい! LTの練習会のおかげで伝いたいこと伝わったと思います。(時間がギリギリ間に合わなかったけどw) CreateMLでできたMLModel興味ある人こちらのrepo是非確認してください。
Day 03(9/2)
留守でした。申し訳ありません!
感想
スタフの皆さん、スピーカー同士の皆さん、ゲストの皆さん素晴らしいiOSDCでした!
頑張って発表申請してよかったしか思わない。おかげで色々な素晴らしいiOSエンジニアの友達作れていい勉強になりました。
懇親会話しかけてくれた人もいたしgiginetと喋ることできて最高でした!
後一番大切なお土産もらっちゃいました。


