WLEmptyState is an iOS-based component that lets you customize the message when the dataset of a table (UITableView) is empty by including an image, title, and description to reflect the empty state in your screen.
Identifying an opportunity
Due to similar behaviors found in several apps, multiple components are repeatedly required across different projects. The iOS team, using Wizeline’s approach to developing scalable solutions, built tools that could later be reused and shared with the broader community. The idea of an open source project led the team to develop a lightweight and highly practical application that ended up being the team’s first open source product.
App development typically includes the display of listed information through tables (eg. contacts, songs, emails). When these tables are empty, however, the user can get confused if there is extra information providing context. This is problematic because empty tables can mean a variety of things: the app contains no data, the data is still loading, or the app is failing to launch.
To eliminate these uncertain situations, the team created WLEmptyState, a product that developers can easily integrate into their apps with just a few lines of code. Once the app has been coded, developers only need to customize the title, add a short description, and attach an image of choice.
How was this transparency achieved?
A spell named “method swizzling” is called in the depths of WLEmptyState. This technique consists of intercepting the calls to standard library functions to use custom implementations. Thus, the empty state is automatically displayed when the data source of the table has no items in it.
Open source standards
As the solution advanced through development, the iOS team realized there wasn’t a similar open source project, and therefore, no model to follow. This challenge forced the team to be much more collaborative and communicative with all stakeholders and each other to deliver an outstanding application.
Another pressing problem the team faced was delivering a product in compliance with the high standards set forth for publicly available open source products.
The iOS team, in collaboration with others, diligently worked to:
- Establish a clear and descriptive README to be set as our first entrance
- Select a delightful icon as part of its identity
- Settle on contribution guidelines
- Author contribution processes including the definition of a Code of Conduct
- Test to the tune of 90% coverage
- Create the proper documentation
- Write templates for pull requests and issues
- Feature in CocoaPods, the biggest dependency manager for iOS modules
Because the project was completely driven by the iOS team, some barriers related to task arrangements and how the items were going to be worked occurred. A few of the strategies used to address these blockers included:
- Distributing jobs amongst team members
- Defining and taking action in the overall project management
- Syncing open source processes with the team
- Fully engaging all contributors and taking complete ownership by putting in overtime and extra effort
The project has accomplished the following through its v.1 release:
- Nearly 200 stars in Github
- Integrations into Awesome Swift, one of the most recognized lists of Swift libraries and resources for iOS open source projects, and has more than 17K stars and thousands of daily views in GitHub
- WLEmptyState has also been shared in the weekly newsletter iOS Goodies
- It has reached the other side of the world and is featured in Chinese and Japanese iOS controls sharing pages
- It has been published in CocoaControls; an important catalog in the iOS community for custom controls and views
- It is already integrated into projects at Wizeline and other companies in Mexico
- Awesome-iOS, Github’s largest referent to iOS controls and has more than 31K stars, added it to their list
- Our repository has received more than 5K visits since launch
Learn more about open source at Wizeline and check out other open source projects.