Lowcode iOS apps, being 10 years in development 🤯

Yes, the title is true. Being in programming since 2013, I have been creating iOS applications on Low Code for 2 years now…

And now in more detail.

In 2013, I joined John Rush's company while I was still studying at the institute. A mutual friend brought me on board, and although I was primarily proficient in web development (html, css, js) and had some knowledge of C++, C#, there were no open web developer positions available. Instead, I was given the opportunity to try my hand at mobile development for the iOS platform. This was a challenging task for a student and a small startup, as it required a significant technical workload and the use of Hackintosh.

I dove head first into learning the necessary frameworks for app development, such as UIKit and CoreData, all written in the Objective-C language. I worked on several projects, but the most significant one was Filmgrail, which I continue to work on today.

At the time, we were creating a platform for finding films worldwide with a unique categorization system (a little drama, a lot of action, a pinch of humor, and so that the film kept in suspense). Users could set sliders with genres to find films that matched their preferences. I served as the iOS developer for the team, and as the Swift language emerged, I transitioned the Filmgrail app to it. Over time, I also added new features from frameworks I had learned, like auto-playing videos from AVKit and cool animations from AnimationCore.

Then Low Code came into my life

Have you ever been in a situation where you've got so many clients to support that it's like trying to juggle chainsaws while blindfolded? Well, that's where Filmgrail found itself a few years ago.

At first, Filmgrail was just a concept, but over time it evolved into a platform for building websites and apps for cinemas. Our first clients were a bunch of theaters in Norway. We built sleek websites and apps for buying tickets, adding movies to watchlists, leaving comments, and even a news feed. It was a wild ride, but we made it through and the clients loved it.”

I was the iOS developer on the team and I was having a blast making that app. But as the number of theaters we worked with grew, it became increasingly hard to keep up. That's when we decided to come up with a solution that would make our lives easier and more fun (yes, fun is possible in software development).

We were using a platform called Mars (marsx.dev) for web development for a year and it has simplfied the whole work for web and backend developers a lot.

We partnered with the Mars team and discovered that their server JSX approach was perfect for mobile development. So, we created MarsKit, a framework for both native and hybrid mobile app development.

It basically takes JSON from the server and turns it into a page with native interface elements. This way, we can pass not only data, but also the entire visual component, styles, and page markup to the apps. Plus, I got to work on some extra cool features for Mars, like creating a set of "mars blocks" that let you write code that looks like JSX, but gets converted to JSON and sent to the app.

Long story short, we ended up rewriting Filmgrail on the Mars platform and it only took us less than half a year, even though Mars was still pretty raw at the time and Filmgrail was already a fairly large project (around 15 theaters). So, next time you're feeling overwhelmed with supporting too many clients, remember to take a step back and think about how you can make your life easier and more fun with a little innovation!

Some of the guys on my team still don't understand how to write applications on Mars 😀

Mars v4

The latest release of Mars4, is bringing some exciting updates for developers. With this release, it's now possible to seamlessly connect web and app development by using a single block of code for server-side logic. This means that developers can now create a UI component for web and a separate UI component for apps, while still keeping the underlying logic the same. This not only reduces the need for duplicate code, but it also allows administrators to manage both the web and app development in a unified way.

Another great feature of this release is the expansion of MarsKit. MarsKit is a separate tool that allows for added functionality to be set in the app. With each release, the capabilities of MarsKit are growing, making it an even more powerful tool for developers to use.

Lastly, there is the addition of MarsAppCreator, a macOS app that gives admins the ability to create and deploy new apps all the way to the AppStore without the need for developer involvement, as well as perform routine tasks on existing apps. This is especially useful for businesses that need to make quick updates to their apps, like changing a logo or other branding elements.

How does it feel to switch to lowcode?

Switching to lowcode can feel a bit like moving to Mars. No, seriously. I used to be an iOS developer, but since we switched to lowcode, we save a ton of money as a company. That's why I'm able to manage all of our apps for cinemas and also work on expanding our internal tool, MarsKit, and even have side projects where I build a MacOS app and a Mars iOS app for cloning popular apps like Instagram, YouTube, and TikTok.

The great thing about lowcode is that you don't need to be an expert developer to get started. I've found that basic knowledge of javascript, HTML, CSS, and MongoDB is enough to start developing on Mars. The only downside is that the Mars platform doesn't always explain the inner workings of its life cycle to developers.

When I first started, I had a tough time figuring out how requests were being handled and what the scope of certain things were.

But it looks like Mars 4 has made significant improvements in this area, so getting into lowcode development is becoming even easier.

Maybe create something for my own? How realistic is it to make a full-fledged product in one developer.

I have an idea for a platform that combines elements of Discord, Twitch, and a news resource for video games. I am curious about how realistic it is for a single developer to create a full-fledged product.

Though it may not be the most profitable business idea, I am passionate about video games and have long considered a platform like this. I am unsure if something similar already exists, but for now I am mostly interested in exploring the feasibility of developing it on Mars.

I am considering several options for building my product, such as using Linux and Node.js for web and backend development and Xamarin for app development.

My goal is to minimize the amount of code and languages required.

However, as I travel frequently, I want to make sure that I can build my product on a platform that is easily accessible to me.

What is the peculiarity of Mars as a Low Code platform

Mars, as a Low Code platform, offers several unique features for software developers. One of the most notable is the ability to use a single codebase for multiple platforms. This means that developers can work in one project and switch between tabs to make changes that will be reflected across web, Android, and iOS apps.

Another advantage of Mars is its ease of use when making fixes and changes. The process is much simpler than going through the traditional review process in app stores. Additionally, with the Mars platform, developers can work from any computer with an internet connection, eliminating the need to install environments, configure routers or ports, etc.

One benefit of this ease of use is the ability to make changes while on the go. For example, if a developer is travelling and receives a request to change the color of buttons on a particular page, they can simply log into their Mars platform, make the change in one minute, and the change will be reflected across all platforms.

However, there are also some limitations with simultaneous access and control of changes, but it's promised to be fixed in Mars 4.

Overall, transitioning to Low Code in iOS development using the Mars platform can be less daunting than you might imagine. The platform offers several benefits, including the ability to use a single codebase for multiple platforms, ease of making fixes and changes, and the ability to work from any location with an internet connection.