Cross-platform mobile radio application

One of the most popular Latvian writers and influencers in Latvian literature Rainis once said:

“Shall exist those who change”.

Information technology domain is the one this saying can be referred to the best, we could guess! The technology changes and evolves so quickly and those who struggle to change and evolve with it, get thrown out of the game.

Our development team is always keen to evolve and accept new challenges, and when our founding partner once approached and said – “Hey guys, do you know Flutter? I heard it’s cool!” (https://flutter.io was what he referred to), it was something that immediately grabbed our attention.

Being a flexible web development company working with different technologies, we immediately saw a very promising yet very young platform on a basis of Google’s Dart language, offering a great value – one code-base for iOS and Android applications!

Flutter

Cross-platform. Native. Compiled.

A new page in the history of mobile development, as we discovered!

Not mocked or wrapped like Ionic, Cordova or PhoneGap which gives you cross-platform features behind the curtain of illusion you are running a native application.

Native code, native speed and with the possibility to embed native code when it’s needed – we knew we must jump in and try it out!

Where to use

We had a small problem, though – none of our Customers or Partners was interested in mobile development with Flutter at that very moment! What a pity!

Latvian Christian Radio is expecting its 25th anniversary this year, he said. Let’s do a pro-bono and develop them a mobile radio application!

And, again, our founding partner and former spokesman of Latvian Christian Radio brought an idea – Latvian Christian Radio is expecting its 25th anniversary this year, he said. Let’s do a pro-bono and develop them a mobile radio application!

That seemed like a good basis for our test-run with Flutter!

We shook the dust off our smartphones, installed Android Studio & Xcode, downloaded Flutter and began! Due to the fact we are a little bit more than just full-stacks and have done different things in our life (PHP web apps, .NET desktop and web applications, IoT, Android apps, Front-end solution on AngularJS and React, even created our own Raspberry PI controlled RC car which can be steered using a computer and a steering game controller in combination with Fatshark goggles) Flutter felt kind of familiar and intuitive.

Of course, there were a lot of things to learn like it is with every new framework you put your hands on if you want to do things the right way, instead of rowing the boat against the current. Still, the almost CSS type of styling, the widget thing and stateful approach (which was known from Angular JS and React) gave us the feeling we are at home and we know where to look for all the things we need.

The tasks for ourselves

It was our initiative so it was a part of the mission to define what and how we are going to create while taking into account what is available already.

  • The main goal for ourselves was to  create a mobile app which:
    • provides the live-stream of the radio station;
    • contains an archive of the episodes;
    • shows the schedule;
    • looks and feels great, works in the background and is easy to use.
  • We asked for permission to access the Latvian Christian Radio’s web server to see what we are dealing with. They already had the live-stream feature on their website as well as information about the schedule and archive somewhere in their database;
  • We found all the info we need in their infrastructure;
  • We created the API script to get the data we need from the DB;
  • Finally, we developed the mobile app.

Of course, the biggest part of all the to-do’s we defined was the 5th task.

Although Flutter is a cross-platform framework, we experienced quite many cases where cross-platform functionality isn’t handled out of the box and required some writing of native platform code.

We also should mention that when we started the development, Flutter itself was quite mature, yet still was on version 0.x, which basically means – “use it if you feel comfortable, but don’t expect 100% stability”. In other words, it was still in beta version.

The result

The result is a fully working mobile application that can be downloaded from App Store and from Google Play.

After the launch of the application, we were happy to realize that the definition of the task, the design of the mobile application we created internally, the solution itself was so good that we got 5-star ratings. We also acknowledged there were some minor and easy to fix issues on older Android versions but every Android mobile developer knows – different versions of Android can cause you quite some headaches.

In our case, those were relatively tiny issues and they got eliminated the same day they got discovered.

In summary

The experience we gained from this project was indispensable:

  • We discovered Flutter which performed just great;
  • We gained new experience and mobile development skills;
  • We created a great mobile radio app people appreciate and rate positively;

Was it worth it? 100% yes!

If you are interested in mobile application development, too, don’t hesitate and contact us!

Technologies

Flutter, Dart, Android Studio, Xcode, JSON, PHP

Screenshots

Let's Talk
First name
Last name
Phone
Phone number entered is invalid.
Message*
Message must not be empty.
preloader