본문 바로가기

iOS192

[iOS 예제] Ripple Effect Material Design Build beautiful, usable products faster. Material Design is an adaptable system—backed by open-source code—that helps teams build high quality digital experiences. material.io Ripple Effect 아래의 이미지와 같이 버튼이나 뷰를 클릭했을 때 마치 물결이 퍼지듯 원형 모향의 애니메이션이 퍼져나가면서 사용자에게 클릭을 인지시키는 효과 위의 구글 material에서 pod으로 다운받아 사용해도 된다. Code UIView을 상속받은 protocol을 만들어서, 최대한 재사용이 가능하게끔 만듬 원리는 아래와 같다. UIView의 touch.. 2022. 6. 19.
[iOS] 상황별 app life cycle 메서드 호출 순서 @main class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { window = UIWindow(frame: UIScreen.main.bounds) let vc = ViewController() let navVC = UINavigationController(rootViewController: vc) navVC.isNavigationBarHidden = true windo.. 2022. 6. 6.
[iOS] 앱 실행 시 UI Restoration Process UI Restoration Process Apple Developer Documentation developer.apple.com UI Restoration은 app 런치 이후 앱을 초기화하는 과정에서 일어난다. app delegate의 application(_:shouldRestoreApplicationState:) 메서드가 true를 반환한다면, UI Restoration을 진행하게 된다. 먼저 view controller 오브젝트들을 생성한다. 해당 object들의 state를 복원하고 decode한다. 복원이 끝나면, UIKit이 application(_:didFinishLaunchingWithOptions:)메서드를 호출한다. ViewController들의 재생성 복원 중에, UIKit은 vie.. 2022. 6. 6.
[iOS] App launch Sequence Apple Developer Documentation developer.apple.com App launch Sequence 앱을 런치할 때 시스템에 의해 복잡한 여러 단계의 시퀀스가 실행이 된다. 런치 시퀀스동안, UIKit은 app delegate에 있는 메소드들을 호출해서 app이 사용자 상호작용에 대비하고, 앱의 요구사항에 맞는 여러 작업들을 실행할 수 있게 한다. user나 시스템이 앱을 실행 시, 시스템은 앱을 prewarm시킨다. iOS15 이후 버전에서는, 시스템은 디바이스 상태에 따라서 앱을 prewarm 시킬 수 있는데, 앱이 사용가능한 상태가 되기 전까지 사용자가 기다리는 시간을 최소화하기 위해 nonrunning 애플리케이션 프로세스들을 실행한다. 시스템이 Xcode에서 제공하는 '.. 2022. 6. 6.