Development/WWDC
WWDC 2015 - Platforms State of the Union
江多林
2015. 6. 17. 17:44
WWDC 2015 Platforms State of the Union
Platform states of the Union
Platforms: iOS9, OSX, WatchOS2
- 네이티브에 올려서 해볼 수 있음. 공짜로
- 개발프로그램멤버십 통합
- iOS8 83% 설치됨
- iOS9 업데이트 필요용량 축소 1.3GB
- 나중에 설치하기 기능 ㅋ~
App Thinning 앱 저장공간 관련 개선
- AppSlicing - FatBinary, Asset 에서 필요한 부분만 쪼기는 기능
- OnDemandResource - 애플에서 필요시 다운받을 리소스
- 개당 최대 2GB 로 구성된 세트로 구성
- 세트 최대 개수는 제한이 없으며,
- AppStore 에 호스팅되어 짐
- Xcode 에서는 Xcode에 호스팅되고,
- Xcode CI 에서는 해당 서버에 호스팅됨.
- BitCode - 필요한 것만 조합해서 AppStore 에서 다운로드
WatchOS2
- 워치에서 native 코드 실행됨
아이폰이 멀리 떨어져 있어도 NSURLSession 통신 동작
Watch App 의 구현체
- Complications - 첫 화면/ 타임라인 제공됨
- 푸시노티, 백그라운드로 로칼데이터 갱신가능
- 용두를 돌려서 TimeLine 훑어보기 제공
- 동시에 노출된 다른 Complications 와도 시간이 싱크된다.
- Grances - 훑어보기/ 훑어보기 적절한 구성으로 제공하기
- Notification - 노티 선택동작, 전용 UI구성 가능
- Full App - 워치앱 익스텐션의 전체 기능 제공하기
- Complications - 첫 화면/ 타임라인 제공됨
기타기술
- 새로운 압축알고리즘 - lzfse
- Low Power Mode
- Two-factor authentication
- 숫자비번 6자리로 확장 가능
- 앱에서 NSURLSession - tls1.2 사용하도록 강제
- http 로 통신하려면, info.plist 에 도메인 추가해야함
- 추가적으로 NSURLSession 한정 제한인지 확인이 필요함
IPv6
- IPv6 only 네트워크 늘어남 iOS4.0 부터 지원중
- iOS9 부터는 IPv6 지원 리뷰 가이드라인 제공될 듯.
- IPv4 하드코딩 없으면 문제 없을 듯.
국제화
- 날짜, 시간…
- NSPersonNameComponentsFormatter
- 아시아와 미주유럽 권의 상이한 이름형식 포멧팅 제공
- 아랍어 좌우대응 - 화면 레이아웃까지 좌우 뒤집어줌
- AutoLayout 적용하는 것만으로 가능한 듯.
- 단, leading, trailing guide line 사용시
* Universal links * - 앱간의 전환 및 돌아가기 기능
- register app links
- NSUserActivity
application:continueUserActivity:restorationHandler:
HomeKit
- Notification
- 개별 관리 Settings 제공
- Event/ Push/ ManageUser
Search
- App Search
- App Suggestions - NSUserActivity
Multitasking
- DynamicType: Auto layout/ Size Classes
- Adopt adaptiveUI
- Use a launch storyboard
- Support all orientations
ForceTouch
iCloud
- iCloudDrive
- LSSupportsOpeningDocumentsInPlace : didFinishLaunch ?
- CloudKit
- 1PB-Assets
- 10TB-Database
- 200TB/day-Assets
- 400 req/sec
- JS library
- iCloudDrive
Swift
- 성능개선
- ErrorHandling
- cleanup code
- implicit control flow
- accidentally ignored errors
- ErrorType enum 으로 Error.Code 정의
- AvailabilityChecking
- if #available(...) {
- @available(...)
- FluentInterfaces - 콜렉션처리 함수기반->메소드로
- EarlyExits - guard let x = x else { return }
- Swift-er SDK - ObjC기반 Generic
- Header File View
PlayGround
- Rich Comments in Playgrounds
- Multiple pages
- Rich text comments
- Inline results
- Supporting source files
- Embedded resources
InterfaceBuilder
StackView
StoryBoard ReferencesOn Demand Resource Tags
- Level-1/ Level-2
- Xcode-CI 로 빌드하면, OnDemandRes Server로 구동됨
- Xcode 로 실행시에는 Xcode 가 OnDemainRes Server 제공함
Xcode Debugging Instruments 개선
- AddressSanitizer - 주소 침범을 모니터링해주는 것 같음
- CrashLog 보기 - Xcode에서 코드위치까지 연결함
Testing Tab
- API/ Performance/ Synchronous/ Asynchronous
- UserInterface Testing
- CodeCoverage
- Testing Example - DemoBots
- CodeCoverage - Record UserInteraction
- 무시무시 -_-
Games and Graphics - 잘 몰라서 타이틀만…
- Metal
- Model I/O
- GameplayKit
- ReplayKit
Conclusion
- Game
- App Thining
- Swift
- Xcode
- TestFlight 에서는 가능할 듯.