Day 01
ARKitのための3D算数
思ったより(甘いね〜)算数が必要だった。使ってみたいです!
Working in a multi-cultural environment with a global app
グローバルなアプリはどんな問題が現れるのか?
国によってユーザーrequirementは違う
問題解決は:
Provide customization for the default layout.
Different app layout for each country.
Always document before you act otherwise someone else could already be working on it.
Writing documentation is really important and should be very detailed otherwise on a global team they will have to search and wait until that team is awake and at work for an answer.
specification - implementation - testing are an important circle for alleviating problems.
Code PushとReact Nativeで緊急OTAリリース!了解!
Code Push is a CI and it has a free version with no limits.
Javascript is the only exception to injected code according to the app store guidelines.
Code push sounds great but I don`t want to write an app in JS...
ツールとして利用するUIテスト
Layout testing should have UITests and people checking it.
Lunch unit testing.
xcode 10 parallel tests
2 simulators had the best performance
TestSummaries is a great tool
アルゴリズムを通じてよりよいアプリを
iOS 12s speedup is due to algorithms
Landau O
autolayout is O(2n) but in 12 it is O(n)
update constraints is called 120 times per second so you should leave out heavy stuff
raw loops are bad mmkay
gotta learn those algorithms
bridging between objc and swift has a large cost
for example getting a range from the objc side took 400ms longer than just using the objc side in the first place
Day 02
Markdownをリアルタイムに解析する
The current IDEs are heavy so he wanted to try making a light version of his own.
the points he wanted to make
coloring and code styling(indent, etc)
NSTextStorageDelegate is important to this process
emoji is really difficult because it changes with the text format (UTF8, Unicode, etc.)
Swift 4.2 はどのような進化をしているのか
Swift history has lots of huge changes
4.2
random number generator became more swifty(don`t need to use arc4 anymore)
shuffle/shuffled function was added as well!
isHidden you can toggle now
so no more isHidden = !isHidden
Much more friendly with Python because of dynamic lookup
warning and #errorつかいましょう!
can check the code against the compiler version in 4.2 super convenient!
Should take a look at swift package manager...
Swift Compilerの最適化入門 - AllocBoxToStack編
SIL - Swift intermediate language
there are 100 different optimizations in swift
writing code inline helps with compile performance
コンパイラから紐解くSwift method dispatch
static is when the app is compiled
dynamic is when the method is called
Direct > V > Dynamic
final and private ちゃんと使っていきましょう
internalクラス使ってもdynamicになってしまう
宣言的UICollectionView
差分アルゴリズムの原理について
難しかったです
レガシーなアプリケーションの60fps化を目指す為にやっていること
when redoing the app it is important to put the parts that will affect user experience first
ReSwift and Redux...
broken autolayout slows down the ui alot
make views with a background and alpha as much as possible to up fps
Day 03
iOSでSwitchの複数ディスプレイ配置調整を実装してみた
Creative use of Multipeer Connectivity. I want to try using it again because in ios 8 it was terrible...
詳解Fastfile
Look up spell checker plugin for code reviews (ruboty)
private lane = Ruby Proc
add #vim: syntax=ruby
and github will format it for you
verify_block looks pretty useful
leaving the changing of settings to xcode is the best idea
binding_pry使いこなしてデバッグしましょう
Depth in Depth
素晴らしいdepthの説明
リアルタイムできない。。。残念
セッションまとめ
iOSDC過去の発表