Project Screenshot

The BlackList Lifestyle

A lifestyle-focused application that promotes local goods, events, and businesses

  • Idea

    TrendyList is a Saudi Arabian lifestyle news platform. Ahsan Kamal, the owner of TrendyList, came to Steelkiwi with a request to create TrendyList mobile applications for iOS and Android. His goal was to make TrendyList more comfortable for users and to attract a larger audience by making it accessible from mobile devices.

  • Analysis

    Every minute of our lives we’re bombarded with information – from our phones, computers, TVs, cars, radios. There’s a never-ending buzz of words, facts, and figures going in and out of our heads. Just in the one minute you’ve spent reading this page, people all over the world have liked four million Facebook posts and over two million Instagram photos, watched around seven Snapchat videos, and sent more than three million Tweets and over three million text messages. 


    In such a strong current of information, it’s hard not to get carried away from the things you actually care about and want to keep up with. But thankfully, there are services like TrendyList that allow you to carefully filter this torrent of information and pay attention only to the things you truly enjoy. On TrendyList, you can find what you care about most: ideas about design, fashion, beauty, home, and food; events taking place in your area; and articles about local restaurants, gyms, and stores. By developing mobile applications for TrendyList, we’ve made sure that users always have access to the platform – and therefore to the information that matters to them – whenever they want and wherever they are.

  • Solution

    We built a lifestyle app for iOS and Android. The application is an online directory for the exclusive lifestyle brands in the Middle East from different categories including home, art, fashion, beauty, events and entertainment, and health. As of late 2019, the app had over 1500 daily visitors and more than 250 blog posts. 


    Additionally, one of our tasks for this project was to develop an especially comfortable and easy-to-use admin panel that the TrendyList team could use to manage the platform. Our goal was for the platform’s contributors and editors to be able to spend all their time taking care of work and not figuring out complexities of the system.

User Roles

Platform manager

The platform manager can see and edit all user accounts and posts, promote articles, and send registered users personalized notifications such as holiday wishes.


Readers can create profiles, follow categories that interest them, and store favorite news. They can also share content on social networks and get notifications.


April 2017 – November 2017
Backend - 2 iOS - 1 Android - 1 UI/UX - 1 DevOps - 1 PM - 1
Designed the UX/UI

We designed the iOS and Android applications from top to bottom, working very hard on each and every detail. Our aim was to create a design that would be aesthetically pleasing yet not call for too much attention. We wanted users to concentrate on reading articles and viewing images. To achieve this, we struck a balance between text and images, making them equally attractive.

The interface we designed is minimalistic yet functional. Article details are hidden under buttons that are discreetly located on the screen. If readers are particularly interested in, for instance, the location or date of an event, they can simply press one of these buttons and the information will immediately pop up on the screen.

We also added a map for events that are advertised on The BlackList Lifestyle so that users can see where events will be taking place in addition to reading about them.

Developed a functional backend

We developed two native mobile applications using Java (for Android) and Swift (for iOS). For now, these applications only allow users to read content. However, our client is planning to soon add the ability to contribute content directly through the apps.

We also built a Django control panel, which supports three different user roles: Admin, Contributor, and Editor. Contributors are responsible for writing articles, and therefore have permission in the CMS to write and edit articles as well as add pictures, tags, and all other relevant information. Contributors cannot, however, publish articles – this is the job of Editors, who publish after making the final edits. Logically, Admins have all of the rights of Contributors and Editors, and in addition can send personalized notifications to The BlackList Lifestyle users.

Defined the server architecture

For The BlackList Lifestyle, we developed a RESTful backend that uses the REST API to serve articles. All in-app publications are added from the Django admin panel. The server is also capable of sending email as well as push notifications to users’ phones.

Added integrations

We integrated APIs from Google+, Facebook, Instagram and Twitter for authentication. For push notifications we used OneSignal, and we added Celery for scheduling both article postings and notifications.

Developed a native iOS application

The iOS application is written in Swift. In order to fulfill our client’s requirements, we implemented the Model-View-ViewModel (MVVM) architecture and created a number of custom UI elements and helper modules in accordance with the principles of Material Design. For the REST API interactions we integrated Alamofire, and we customized the parsing mechanism for the Core Data models that provide offline support. Each API call is observed by a network activity indicator. Errors are managed by custom-made structures and extensions.

On the Directory screen, we created a custom layout for the UICollectionView and implemented customized buttons with UIStackView, which is perfect for dynamically inserting and removing views.

We chose OneSignal to manage push notifications. The Media layer, which deals with the custom media slider and video playback, was implemented using native iOS frameworks. Image caching and loading is handled by Kingfisher.

Developed a native Android application

The Android app is written in Java. We went with the Model-View-Presenter (MVP) architecture for this app because it’s modular and is great for building MVPs since all changes can be made within separate elements without the need to disrupt the overall business logic. We designed the Android app following Material Design guidelines. For REST API interactions, we implemented the stable and popular combination of RxJava and Retrofit.

For the database and general data management, we integrated Realm and Hawk. OneSignal deals with monitoring, customization, and delivery of push notifications.

Crashlytics was used to monitor and detect any system crashes. Calligraphy and Picasso help with font and image management, respectively, while native Android libraries perform video playback.

Last but not least, we integrated Google Maps to show the exact location where events advertised through the app will take place.

Implemented features

The BlackList Lifestyle allows businesses to post paid promotional articles, which take up a specific position in the feed. For this feature to work properly, we needed to figure out a way to display articles in the right positions with the correct pagination. To do so, we developed a logic that sorts all articles in the background using a Celery task.

Articles on The BlackList Lifestyle can be filtered alphabetically, categorically, or by city (which is useful when looking for events).

All users can receive notifications when an article comes out on a topic they’re interested, while registered users are also notified about events they’ve liked (24-hours in advance). TrendyList admins can also send registered users personalized notifications (such as holiday wishes).

Registered and non-registered users have almost identical permissions in the Blacklist. They can make app wide search, see places in real time location, filter posts by cities and categories.

However, only registered users can store their favorite pieces so they can easily revisit them.

Technology Stack

Python icon
Swift icon
Django icon
Kotlin icon