6 more days before we are going to watch the WWDC 2021 Conference. Multiple events are being hosted by many iOS Developers around the world. Besides that, I would like also to recommend some top watchlists of the iOS Conference, that we can watch as a warm-up before we are sitting and watching WWDC next week.

Here are my top lists:

Swift Heroes Italy

Swift Heroes Italy is one of the most underrated conferences in Italy. It has covered multiple ranges of interesting topics every year since 2018. …

PIC: https://qonversion.io/

During development, we will come into a phase where we would like to test out our In-App Purchases. However, most likely we ever heard a myth that IAP only works with devices to test it out with an internal tester account. Turns out during the process of the creation of Tripzy, I found a way to test our IAP in a simulator without any hassle. Keep in mind there will be some limitations of course if we are testing against the simulator. Okay, let’s jump out to the solution, which is StoreKit Configuration.

StoreKit Configuration

Basically, StoreKit Configuration is a JSON-encoded file…

Simple Onboarding View

Apparently, even if SwiftUI 2.0 has powerful enough for production code, but sometimes they are still lacking documentation for a simple component like PagingView. As your information, there is now a native equivalent of UIPageViewController in SwiftUI 2.0 which is adding the .tabViewStyle modifier to TabView and pass PageTabViewStyle.

Factory Pattern

Factory pattern is one of the common patterns in a programming language. It is one of the creational design patterns that provide a high level of flexibility for your code. One of the interesting use cases that could make Factory pattern become a handy tool to use is Dependency Injection. Normally whenever we want to inject an interface as a dependency on an object, we could easily pass it through the initializer or set it from the property. See the example below

Illustration by Michael Abadi S.

The proxy pattern is one of the few underrated patterns that nobody really talks about in iOS. A proxy pattern is one of the structural design patterns that lets you provide a substitute or placeholder for another object. A proxy has total control and access to the original object, and let the proxy object do some magical stuff with the original object and restrict the access to it, however, the one who uses a proxy object, won’t have any knowledge behind the scene.

Proxy pattern normally being used outside of mobile development, when some request wants to map the request…

Combine, is a new framework introduced by Apple since SwiftUI 1.0 back then in 2019. The architecture behind the scene itself is adopting the system of FRP (Functional Reactive Programming) which takes computation as their main computation of process combine with the propagation of data through the stream of the function. In this tutorial, I would like to explain how Combine can make your job done quicker than ever compare with the conventional way of code. Multiple-use cases of Combine usage have been explored such as Networking and any asynchronous process, but there are few of them explaining how we…

After we have understood the basic concept of LLDB commands now it is taking time to understand the full GUI of Xcode debugging.

GUI — 1

Let see the picture above. Once you have put a breakpoint on any lines of code in your applications, you will see a similar screen as above.

  1. The top one is our code panel, which indicates where is our breakpoint located
  2. The bottom left panel is our quick look panel, we can see our current state of the object in either class or function level at the moment the code is being halted
  3. The bottom right panel

Have you ever wonder how to debug your entire code in the proper way? But sometimes we don’t know in-depth detail about how does it work behind the scene? In this multiple series of articles, I am trying to spread multiple articles into specific chunks of debugging part, start with the basic / foundation part of debugging in iOS. Normally we will have multiple topics covering all areas, start with LLDB debugging and end with Logging.

What is LLDB? LLDB stands for Low-level debugging which in iOS it will support multiple ways of debugging specifically only for iOS targeted application…

Me on iOS Thailand Conference #20 December

2020 has been passed, it’s been a thrilling ride for this year especially for uncertainties about COVID that limit us to move around especially traveling. Some people like me, who work abroad, far from family, may have some difficulties. However, it doesn’t need to be that desperate. Instead, there were so many good things that happened during this past 1 year. My productivity increase twice even more than before. There were multiple accomplishments that I took as proof that this year, as much as it sounds a hurtful year, we can always find and seek the opportunity to turn the…

Recently I got stumbled with a boring way to create an icon from SF Symbols. As you know that Apple introduces SF Symbols for a developer to reuse in their own application if needed. SF Symbols is a set of over 1,500 symbols that you can use in your app. Why SFSymbols are great for indie developers?

  1. It is free
  2. Optical alignment with text for all weights and sizes
  3. Support multicolor
  4. Support localization for RTL languages such as Arabic, Devanagari, and Hebrew

Normally we will do something like this for using the SFSymbols

UIImage(systemName: "gear") --> UIKit
// or
Image(systemName: "gear") -->…

Michael Abadi S.

iOS Engineer at Agoda, Bangkok

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store