トーク集めてくれた記事 @yuukiw00w
https://qiita.com/yuukiw00w/items/65ce867a99f898e77b10
IOSDC 前夜祭
スクリーン配信機能の実装大変だった
かんぱい🍺
pixiv sketch
ReplayKit
簡単にライブ配信できる
IOSバージョンによってできることが違う
The best min version to use is iOS 11 because it has the most capabilities.
You can only debug it on a device
RPScreenRecorder Class
From iOS 10 you can use a Broadcast upload extension to take screen video.
Using this you can upload things to services like YouTube and facebook.
(Like an Action Sheet)
You use a CMSampleBuffer and using that you can tweak the feed.
From 10 you can use do it for other apps
From 11 you can use the control center
Setup UI Extension
- you make an action sheet style view for sending the feed.
You need to delete the NSExtensionPrincipalClass otherwise it won’t find your storyboard.
SampleHandler
Use this to manage the feed from your app.
broadcastStarted
BroadcastPaused
BroadcastResumed
BradcastFinished
FinishBroadcastWithError
ProcessSampleBuffer
RTMPかHLSの場合HaishinKitがおすすめ
VP8エンコードがメモリー使ってしまうのでoutofmemory errorになるので特別なケア(CGImageにへんかんしていたり)
To get mic output you need to set it in broadcast started.
There are problems with using Libwebrtc
The easiest way is to use HaishinKit
If there are no changes the stream will stop, it will timeout so you should send a heartbeat to keep the stream alive
If you want to stop screen caps then you should use the Notification of the OS to stop it
Breakpoints don’t work in the extension so use logs to follow your code
H.264 encoding doesn’t match well with Broadcasting.
Are there memory warnings in extensions? No idea...
Advanced Segue
https://speakerdeck.com/tokorom/advanced-segue-2019nian-falsesegueshi-qing
所 友太 / ToKoRo Yuta on Twitter
Types
- Standard
- Push
- Present
- Embed
- AddChildみたいな
- Unwind
- popping VCs
- Custom
- Override perform and do some fun stuff
IOS 13
Problem: ViewDidAppear isn’t called in the new type of modal
Fix: Using PrepareForSegue you can make your own events to handle lifecycle.
- Override perform and do some fun stuff
Segue Action
Google Later
For static tables it is great to remove didselectrowatindex
Settings画面導入したい
共通Navigation
Make a shared navigation controller and call it from that storyboard inside perform for each different view controller.
Day 01
I was in the opening movie~
ライブラリのインポートとリンクの仕組み完全解説
https://fortee.J-POP/iosdc-japan-2019/proposal/28d1013f-a57b-4d42-b486-a3372c459459
speakerdeck.com/kishikawakatsu…
Library Types
- Framework
- .framework
- Dynamic Library
- .dylib
- Static Library
- .a
Swift has dynamic and static frameworks too.
To add more variations there are frameworks with and without modules.
Plus language and architecture
Bundles
- App
- Project
- Settings
- Framework
Use the file command to easily check frameworks.
SWIFT_INCLUDE_PATHS
Why you can’t get branch coverage in Xcode @kariad_uu
Xccov is line coverage percent.
Comments are counted as part of the coverage percent?!
LLVM-cov
You can do 4 different types of source coverage
- Line coverage (same as Xcode)
- Function coverage
- Instantiation coverage
- Region coverage
If you look at the prof data file in Xcode you can see the different types of coverage
|| and && is treated as an autoclosure inside swift
LT
Kohei Arai
speakerdeck.com/kokoheia/corem…
Day 02
Snapshot Testing
speakerdeck.com/imaizume/pract…
スナップショットテスト実戦投入
It will compare your old and new UI for you so it is easier to notice degradation
FBSnapshotTestCase
SnapshotTesting
Older勉強会トーク
speakerdeck.com/imaizume/how-y…
fast lane snapshot_test
Filename:
Method_identifier_device
Screenshots-preview-generator.rb
You can get more understandable data
ハマりポイント
-
Storyboard and Xib problem
You need to force the xib to be the right size. -
A sync calls my miss the snapshot so you should use XCTWaiter to fix the timing.
-
You have to attach a navigation controller’s view to the window yourself
-
TableViewCell is a pain
-
View lifecycle methods not called so you need to call it yourself.
- Beginappearancetransition/endappearancetransition
It will make finding 表示崩れ much easier.
It takes a while to setup though.
- Beginappearancetransition/endappearancetransition
Making a mobile pay app
@kenmaz
speakerdeck.com/kenmaz/how-to-…
Japan is still only 18% cashless...
There are different types of payments and transfers you need to be careful of. (To prevent money laundering)
You have to have 本人確認 (How?)
- Using their drivers license and check.
- Connect a bank account
- EKYC
Why is Apple Pay secure?
DPan token from a provider masks your credit card number
When you make a payment your phone uses the token and the credit card company decodes it (between you, the store, and apple no one can see it.)
In App Provisioning
PassKit for In App Provisioning
Code payment
CPM and MPM
Consumer Presented Mode
Merchant Presented Mode
JPQR - A Japanese Standard for QR payments that isn’t dependent on one company unique code.
TLV形式
QRCodeGenerator
BarcodeGeneratorFilter
Warning
You should stop screenshots in the app
So that user’s tokens don’t leak.
You need to be careful of people cheating and making a movie of finishing a transaction so for the store and the customer it should be easy to tell when a transaction was finished.
JPQRReader
Framework for each function of the app will make us able to do 機能単位葬式 a reality
Bitrise Lunch Session
Bitrise API (後でしらべる)
Pay as you build(we should try this maybe?
Bitrise Monitor
Track CPU usage, memory usage, network requests etc.
Bitrise Ship Manage all your apps from one screen
Invite and manage testers
Expanded app install pages
Cache Control
Accessibility
@akatsuki174
note.mu/akatsuki174/n/…
https://speakerdeck.com/akatsuki174/subetefalseren-falsetamefalseakusesibiriteidui-ying
color and underline
Color and shape
Not just a shape change but a sound when tapping something
Accessibility Inspector
Environment Overrides - you can see the changes in your font in real time.
Adjustsimagesizeforcontentcategory(you can change image size)
You cannot use a fixed size otherwise it won’t work
Chromatic Vision Simulator - simulates Chroma problems in vision
IsAccessibilityElement = true
You can tell iOS which elements need to read the attributes you set.
To add your own you need to add an accessibilityHint
You can group elements with shouldGroupAccessibilityChildren
Twitterで見つかったトーク
Swiftと論理+圏論
speakerdeck.com/inamiy/swift-a…
ソーシャルライブサービスにおけるデジタル化粧の仕組みと実装
speakerdeck.com/noppefoxwolf/i…
https://t.co/W5Pqkpb1eq