Swift Wala

A Blog about Swift and iOS Development

Let’s Bring Firefox to iOS

| Comments

Firefox is coming soon to iOS. You may remember Mozilla CEO refusing to bring Firefox to iOS in 2013, because Apple didn’t allow them to use their own web-engine. Well times have changed now as evident from this Tweet on 2nd Dec. by Firefox release manager Lukas Blakk:

We need to be where our users are so we’re going to get Firefox on iOS #mozlandia

With iOS 8, Apple has made available WebKit Framework to developers, which contains WKWebView which is a much needed replacement for older UIWebView. Availability of WebKit Framework levels the playing field to a large extent for third-party browser developers and might have been one of the reasons behind the Mozilla’s decision to bring Firefox to iOS. You may like to check out this excellent post for a detailed info about WebKit Framework.

On Dec. 5, thanks to a tweet by Jesse Squires, I came to know that Firefox-ios code has been open-sourced and made available for public on Github:

whaaaat. #firefox for #ios https://github.com/mozilla/firefox-ios

I cloned the repo locally and was glad to know that Firefox for iOS is being developed using Swift and it also uses popular Swift libs like Alamofire and SwiftyJSON. I think if you are a Swift developer, there is a good opportunity for you to get involved in a really high-profile project right at the beginning. Firefox will work on iOS 8 and above only as it uses WKWebView.

Since these are early days, there is not much info out there on how somebody can contribute to the project. With time it will surely change, but till than I hope this post will come handy.

Mozilla doesn’t use Github Issues to track development milestones and bugs, it uses Bugzilla instead, so your first step will be to checkout bugs for Firefox-iOS. You will see many components listed on this page. My suggestion will be to select the ‘Browser’ component as that’s where the most of action is.

Upon selecting ‘Browser’, you will see many bugs listed. You can select any bug having ‘New’ status and assigned to nobody. Now you just need to code and fix the bug in your private/forked repo and when done send a Pull Request.

You should obviously study the existing code first and get yourself familiar with their coding style. Code you write should basically mimic the coding style and patterns already in place. They have recently updated their Readme.md stating that they use Raywenderlich.com Swift Style Guide. It’s a great guide and can help you with your other projects as well, so it will be a good idea to go through it in detail.

When you open Client.xcodeproj Xcode project, you will see many projects and folders in the ‘Navigator bar’, main ‘browser’ code resides in Client > Frontend > Browser. There are only 6 files there in this folder, as of now. Most of the bugs from ‘Browser’ component on the Bugzilla will require working with these files only.

I am really happy to contribute to Firefox-iOS, my first PR was recently merged onto their master branch and my name was added to Authors. I found core contributors friendly, supportive and responsive while discussing my PR. May be I need to write another post discussing my code in detail, but for now I hope this post gets you excited about Firefox-iOS and more of you contribute to it. Let’s swiftly bring Firefox to iOS :-)