iPlayground 2020

Eleanor Peng
3 min readNov 18, 2020

2020 is unconventional. The pandemic has disrupted plans, schedules, workflow of people around the world. Originally planning to attend college this year, I’ve decided to take a gap year to explore more about the world and myself, leading to my current journey at AppWorks School.

Currently living in one of the safest countries–Taiwan–I’m fortunate enough to attend iPlayground, a conference that gathers iOS developers across the country to share and exchange iOS-related knowledge, with peers from AppWorks School. Compared to last year where the conference was held over 2 days, iPlayground has shortened the conference to a 1-day-event due to the pandemic this year. As a newbie of Swift, I’ve learned a ton on topics such as design patterns (MVC, MVVM, MVP), createML, OpenCV, etc… and explored new techniques to utilize in future developments.

Conference & Sessions

I participated in a total of 7 sessions. Among them, “打造你的 App 架構 — iOS 模塊化及路由方案” and “使用OpenCV做影像辨識” were the ones I was most interested in.

Frank — Create App with Modular Design and Routers

Modular design and routers aren’t common usages for newly experienced iOS developers. When I first began developing in Swift, maintainability and readability weren’t my priorities. Instead, I cared mostly about whether the code functions and meets my needs (gradually leading to “Massive View Controller”). Obviously, that wasn’t the best mindset to have as a developer, especially when you’re working with other team members.

When working with a team or under a large company, you’ll have to ensure everyone develops in similar styles. If all the codes are in a view controller, it’s difficult to maintain and debug in the future. To solve this, people use different design patterns for teams to collaborate conveniently. As time progresses, without deliberating choosing how you want to structure your app, you might encounter the following issues:

  • High coupling classes
  • Duplicated codes
  • Can’t create another project efficiently

This is where modular design comes in. You can design low coupling classes by refactoring unnecessary details, using protocols, and restructuring your app according to each core function. To begin modularization, familiarize yourself with business logic and create a flow chart.

Read more about modular design over here:

羊小咩-Image Recognition with OpenCV

This session isn’t directly related to iOS development, but more of a real-time computer vision open library for you to implement. The actual implementation of OpenCV in app is quite complicated, so I’ll only include examples the speaker shared with us that day. If you’re interested in learning more, however, I’ve found an example app tutorial online:

Sample App

Cloud receipts are quite popular these days. Simply scanning the QRCode on electronic receipts allows users to record them and redeem prizes automatically via app. However, that doesn’t work on traditional receipt since it has no QRCode. Thus, 羊小咩 created an app that integrates OpenCV to recognize the numbers on traditional receipt and record them for later usage.

Conclusion

The sessions above are only a small part of the overall conference. Similarly, the topics shared during the conference that day is only a brink of all the knowledge in iOS development. In the era where technology advances swiftly, the only way to keep on improving is to continue practice and learning.

Thank you iPlayground for arranging such an amazing conference and providing us the opportunity to dive deeper into iOS development! Looking forward to the next one :)

--

--