Adam Zekkani
Home

House of Islam

A project made to provide accessible resources to Muslims and Non-Muslims to learn about and practice Islam.

App Store Google Play Website

The Beginning

House of Islam was initially a single page Qibla (Prayer Direction) app that was made in UIKit. When I saw the fast growth of the app, I decided to pay a bit more attention to it and add features such as Prayer Times, Live View of Makkah (in Saudi Arabia), and the pillars of Islam. As I built the app I increased in Islamic knowledge and programing knowledge.

This Calls for a Website

Within 2 years House of Islam had recieved 1,000 downloads. I decided it would also be beneficial to create a website along with an android app for it. Looking back the website it atrocous, but it was pretty to me at the time.

Shift to SwiftUI

In 2021 I began researching SwiftUI, Apple's new framework made to make coding simpler. I tested a few apps using the framework and found it was very developer friendly when compared to UIKit. I decided to make the jump from UIKit to SwiftUI in late 2021. The problem was that many of the packages and Apple components I used prior were not supported, for example neither the Quran package I was using nor the UICollectionView component was supported when I moved from UIKit. This forced me to learn about UI design, APIs and calling data from outside servers on my own.

API Calls

With the new world of API calls, I was able to take full control of what data goes into and out of the app. I could utilize features like Duas, Quran, Hadiths, and much more without making the install 500mb. This improved the app immensly and made the user experience better than ever. I also improved the website to the current iteration, but I was still using vanilla HTML, CSS and JS.

Present Day

I now have nearly 10,000 downloads across iOS and Android devices. I have created my own API using NodeJS and have upgraded the website to use SvelteKit. The apps user interface has been improved and I have made data cachable and downloadable on the app.