Number: 007, Date: 2025-02-24

2025.02.17 ~ 2025.02.23

πŸ™ˆ Hiding UINavigationBar


In an iOS app, screens can be transitioned using UINavigationController.

When hiding the navigation bar during a screen transition in the view controller lifecycle, there are some important considerations.

For example, if transitioning from screen A β†’ screen B via push, and the navigation bar is re-enabled in viewDidDisappear of screen A while being hidden in viewWillAppear of screen B, the navigation bar will not be hidden on screen B.

This happens because viewWillAppear of screen B is called before viewDidDisappear of screen A.

⚑️ Flutter Login Flow Porting


I worked on a project where the pre-login flow in an existing iOS project was ported to Flutter, while the post-login flow remained in native code, connected via Flutter’s Method Channel.

Here are my key takeaways from the Flutter porting experience:

  1. Development productivity is high due to features like Hot Reload and multi-platform implementation.
  2. Communication between Flutter and native code was relatively stable.
  3. There are slight differences in fonts, colors, and dialogs between Flutter and native implementations.
  4. Initial build times are long, and the app size tends to increase significantly.

Important points to keep in mind when integrating native code:

  1. If using SceneDelegate, additional configurations are needed in the default generated project.
  2. Build configurations are divided into Debug, Profile, and Release, and preprocessor flags are not automatically set. Flags should be configured in Build Settings β†’ Active Compilation Conditions if needed.
  3. On devices running iOS 14 and above, apps cannot be launched in Debug mode directly (except when launched from the IDE).

πŸ™‹πŸ»β€β™‚οΈ Other Notes


  1. When using the open method to open a URL link, it must run on the main thread to prevent delays or freezes when returning to the app.