Droids On Roids https://www.thedroidsonroids.com iOS & Android Mobile App Development Company Thu, 02 Jul 2020 11:25:55 +0000 en-US hourly 1 https://wordpress.org/?v=5.4.2 How to Build an App with Flutter – Part 5. Networking and Connecting to API https://www.thedroidsonroids.com/blog/how-to-build-an-app-with-flutter-networking-and-connecting-to-api Wed, 01 Jul 2020 08:57:56 +0000 https://www.thedroidsonroids.com/?p=26909 Learn how to build your first Flutter app. This time, we will focus on styling the home screen.

The post How to Build an App with Flutter – Part 5. Networking and Connecting to API appeared first on Droids On Roids.

]]>

How to build an app with Flutter? Follow our series “Flutter app development tutorial for beginners”. We’ve published the following posts so far:

What’s more, we prepared also a Roadmap that can be useful in your Flutter development journey:

Whether you want to be a freelancer or work at Flutter development company, our series will help you to become a Flutter developer.

Setting up networking in the project

Thanks to following the steps described in the last post, we have the screen of our application ready. In this part, we are going to make it worse (a little). Currently, the pollution data on the screen is mocked, we have to replace it with the real data fetched from the server. In order to do this, it is necessary to set networking in our application up.

Where do we start?

If we want to display the data we need to take it from somewhere. We will use public API for air quality in Poland. The air quality portal API grants access to detailed air quality data collected from the whole country. This API is public and we do not need to authenticate.

What kind of data can we obtain?

  1. List of all air quality stations,
  2. List of air quality sensors for each station,
  3. List of historical air quality data for each sensor,
  4. Current air quality summary for each station.

Here is how a single air quality station looks like:


Our goal is to display the name of the station in the UI of our application.

Setting up networking packages

There are two main choices when it comes to the networking library in Flutter

  1. http package – as per documentation “set of high-level functions and classes that make it easy to consume HTTP resources.” This package is also mentioned in the flutter documentation.
  2. dio package – more powerful than the previous one, offers more configuration such as adding interceptors and request cancellation. Also, it can be extended with plugins for cookie management, cache, etc.

In this article, we will use the HTTP package because our use case is simple. We will only fetch data from the network and we don’t have to authenticate. There will be no complicated logic behind our networking adventures, so we wouldn’t need to use all the features of the dio package, but it is definitely worth knowing of its existence.

What’s more, the data that we will get has to be serialized. We can do this manually but it is much convenient to use code generation for that. For this purpose we will need serialization packages:

  1.  json_serializable – generating classes.
  2.  json_annotation – marking model classes with annotations so that it is clear what we want to achieve in generated code.
  3.  build_runner – provides a command-line interface for generating the code.

This will convert JSON data into objects defined in our application. All this will prevent us from writing boilerplate serialization code for each model class. Add all those packages into pubspec.yaml:

To the code

Now, that we have all our dependencies ready it’s time to make use of them!

First, we will create an HTTP client class that will be responsible for making actual network requests and for error handling. The class looks like this:

  • The class is defined as a singleton so that we can reuse the same instance in many places,
  • data from the network is received as a String so we need to parse it using jsonDecode method which is defined in dart SDK – dart:convert,
  • we check for failures and map them to our own errors defined to suit our needs.

Here are the error types defined for our networking:

The next step is creating a repository when we will create methods to obtain data from different endpoints using HttpClient class created earlier.

The private _Urls class defines all the endpoints that were described at the beginning of the article. We will use each of the endpoints as a parameter to the getRequest method of our HTTP client object.

PollutionRestRepository class extends PollutionRepository. This is an interface that defines all our network requests. This way the responsibility of the repository class is clearly defined. What is more, because of the abstraction it will be easy to switch implementations if we needed to.

As you can see in our repository implementation there are two types of data returned from the getRequest  method:

  1. final List<dynamic> stationListJson
  2. final Map<String, dynamic> sensorDataJson

The reason for this is that we can have two (and only two) types of structures when it comes to json files

  1. List – when json data is wrapped with square brackets []
  2. Map – when json data is wrapped with curly brackets {}

The type of structure depends on the endpoint that we are requesting data from. dynamic type specifies that there can be different types of objects stored as list elements or map key values.

We are left with the last piece of data to analyze in our PollutionRestRepository class

PollutionStation.fromJson(stationListJson.first)

This line converts JSON structure into PollutionStation object that we have defined in our application. Let’s describe this situation in more detail.

Deserialization

“Serialization is the process of translating data structures or object state into a format that can be stored (for example, in a file or memory buffer) or transmitted (for example, across a network connection link) and reconstructed later” – from Wikipedia. Deserialization is the opposite.

Since we are only fetching data from the internet we will focus on the deserialization process. We can do this by manually mapping each property of the class to the corresponding JSON key which is very repetitive and error-prone or we can use code generation to do this task for us.

In order to generate the code we have to mark our class with annotations:

Here is what needs to be done in steps:

  1. Specify the name of the auto-generated class part pollution_station.g.dart
  2. Mark class as serializable  @JsonSerializable()
  3. Specify json key for each property of the class @JsonKey(name: 'id'). Hint: if the name of the property is the same as the key then the annotation can be omitted.
  4. If the property is an object itself we have to provide the serialization class for that object as well! Here City property is the case.

More information about possible annotations can be found in json_serializable documentation. Now we are ready to generate the code, we do this by typing into the terminal:

flutter packages pub run build_runner build

This command is available by adding build_runner to pubspec.yaml file. Running it will generate classes containing code that we would otherwise have to write ourselves.

The last thing is to provide convenient methods in our classes that can use the auto-generated code.

Displaying the data on the UI

The time has come to display pollution data on the UI of our application. First thing is to create a repository object in the HomePage class so that we can use its methods:

For the purpose of displaying the data, we will use FutureBuilder widget which will allow us to create widgets using the future object. We will combine it with GestureDetector widget so that we will invoke a request every time we click on the created widget, the code looks like this:


Inside the builder method, we have access to snapshot object which we can use to check if the data are still loading and if the request resulted in success or error. In case of an error, we have to map received error into an appropriate message. We will do it in ApiExceptionMapper class:

The error types have already been defined in our HttpClient (at the beginning of the article) so now it is easy to provide a message for a specific type of error received. This way this class is translatable if we wanted to introduce internationalization in our application.

Now, when the request fails we should see a relevant message. We have just placed, the name of the station in the middle of the screen. This name is only for the purpose of this article and will be removed afterward.

Summary

Today we’ve learned how to create a simple network request and pass the data into our UI. The complete plugin source code is available in Smoge GitHub repository.

In the next article, we will focus on improving the architecture of our Flutter app. In the meantime, check out in10 – RSVP & ETA Tracking App which we made with Flutter.

The post How to Build an App with Flutter – Part 5. Networking and Connecting to API appeared first on Droids On Roids.

]]>
8 Key Tips on BLE Mobile App Development https://www.thedroidsonroids.com/blog/tips-on-bluetooth-low-energy-ble-mobile-app-development https://www.thedroidsonroids.com/blog/tips-on-bluetooth-low-energy-ble-mobile-app-development#disqus_thread Tue, 23 Jun 2020 15:43:08 +0000 https://www.thedroidsonroids.com/?p=26746 How to develop a Bluetooth Low Energy app? Check out 8 tips on successful BLE Mobile App Development. Guide for current & future App Owners.

The post 8 Key Tips on BLE Mobile App Development appeared first on Droids On Roids.

]]>
Do you want to create a mobile app connecting with a Bluetooth Low Energy (BLE) device? If yes, you are in the right place. Learn 8 best practices useful in your BLE mobile app development and IoT mobile app development.

What is BLE (Bluetooth Low Energy)?

Smartphones have more and more sensors, but for additional functionality, they often need to connect with other devices. If you have a device that connects with a smartphone, there’s a high chance that it uses the Bluetooth Low Energy connection.

BLE consumes low power and has a short-range, but it’s enough for multiple applications. Thanks to using low power consumption, a device can operate longer on the battery, as the respective sipping negligible amounts of energy from the mobile.

This technology is used for smart homes, wearables, healthcare, sports, automotive, proximity sensing — basically for many consumer products and IoT devices. We used BLE in many projects for our clients, just to name a few: Loop app – the app connecting to the Wi-Fi display and allowing users to seamlessly share video, photos & video chat; OhMiBod app – the app connecting remotely with OhMiBod gadgets; Skybuds app – the app connecting with wireless earphones.

If you’re going to build an app that uses BLE, there are some key points you should consider. Since we have worked on many products of this kind, we share crucial tips with you.

Skip to a section:

1. Create polished onboarding experience

It’s very likely that your Bluetooth device needs some additional setup in order to start working. Drawings, photographs, and videos are invaluable assets to include in the onboarding process, especially if you need the user to press a button, scan a code, or attach your device in a particular way.

Images and videos are worth a thousand words and can save you time otherwise spent on copywriting and translations. This benefits users because they could see what they’re supposed to do. It also shows that you’re serious about your product and going the extra mile for the best experience.

Philips offers many video guides for their customers:

2. Ask for permissions

Another important tip on BLE mobile app development is about permissions. In order to work properly, BLE apps require permissions for Bluetooth itself and, often, location services as well.

If you ask for permission which may seem unusual, it’s good to explain exactly why you need it. Otherwise, the user may simply deny it, making their experience worse as a result. This part is often overlooked by designers and developers, but it contributes to the general user experience.

So, what can you do?

  1. Consider the text that the user reads. Remember to state exactly why you’re asking for permissions and how they impact the experience so that users can make informed decisions. Keep it short to increase readability.
  2. Consider when to ask for permission. Don’t overwhelm the user at the first launch with a bunch of requests unless you want to make a poor impression. Instead, you can spread it out over the onboarding period or show it when using the respective feature for the first time. It’s crucial to make sure it would make sense for the user and is justified.
  3. Support follow up dialogs. If a user denies one of your key permissions, let them know what they’re missing out on. It could also be a mistake and, if so, the user should have a way to fix it.
  4. Support a user’s change of heart. What if he or she opens the app with Bluetooth off? Or location services off? For such occasions, you should also have prepared messages.

For learning more about good practices in the area of permissions requests, check out this article from Nielsen/Norman Group.

Also, both Android and iOS have great guidelines on this topic:

3. Loading states are your friends

One of the key rules of user experience design is to show the current state of the system. Discovering or pairing devices can take a few moments and you don’t want people in front of your product just staring at the static UI.

So, if your application is working or pairing a device, users should be able to see this progress. It makes the app look alive and you would ease the pain of waiting at the same time. For BLE apps, it may often happen that some pairing or syncing is happening at different times and it should be addressed in the UI.

4. Handle errors gracefully

Errors happen. It would be ideal to avoid them but it’s not always possible. However, it’s up to you how you want to handle them. It’s good practice to describe the problem and offer a solution for fixing it.

In the case of BLE apps, users may not always be able to fix these issues on their own. Some additional help may be required. For example, users may want to contact support services directly to resolve the issue immediately.

5. Handle empty states

There are some situations when no device is connected to the smartphone. What should a user be able to do in this case? What they would see? How it would impact the app’s capabilities?

Some apps allow the user to poke around the app but, sometimes, it’s best to force them to connect a device. It depends on what the user could actually do without a connected device. If they could look up some data, it’d make sense to let them use the app freely.

BLE mobile app development - permissions request

6. Make it easier to identify a device

Bluetooth devices use long unique IDs that are not that user-friendly. If someone has to deal with multiple devices, make their lives easier by hiding some complexity. Buttons, signal range, QR codes — there’re many clues that can help identify the right device. Furthermore, in cases of multiple devices, let users customize their names or icons so that they became more familiar.

7. Streamline firmware updates

BLE devices have their own firmware which needs to be updated from time to time. There needs to be a way to notify users about updates, let them know what’s changed, and guide them through the process. In some cases, you’ll need to force the firmware update in order to provide the new features. It’s good to start thinking about it early on.

8. Test the app with users on different devices

QA testing of any app is a good idea, but real-life situations can provide eye-opening insights. When you put your customers in front of the app and the device, you may discover new observations. It’s an invaluable way of testing assumptions, finding obstacles, and uncovering potential improvements.

Tips on BLE app development – summary

Tips on BLE mobile app development

So, those were 8 tips for BLE app development. If you have any questions or plan to develop such an application, reach out to us for more information. Good luck with your projects! Read also: Bluetooth Classic vs. Bluetooth Low Energy (BLE) on Android – Hints & Implementation Steps.

The post 8 Key Tips on BLE Mobile App Development appeared first on Droids On Roids.

]]>
https://www.thedroidsonroids.com/blog/tips-on-bluetooth-low-energy-ble-mobile-app-development/feed 0
How to Build an App with Flutter – Part 4. Styling a Home Screen https://www.thedroidsonroids.com/blog/how-to-build-an-app-with-flutter-styling-home-screen Mon, 01 Jun 2020 06:51:06 +0000 https://www.thedroidsonroids.com/?p=25119 Learn how to build your first Flutter app. This time, we will focus on styling the home screen.

The post How to Build an App with Flutter – Part 4. Styling a Home Screen appeared first on Droids On Roids.

]]>

How to build an app with Flutter? Follow our series “Flutter app development tutorial for beginners”. We’ve published the following posts so far:

What’s more, we prepared also a Roadmap that can be useful in your Flutter development journey:

Whether you want to be a freelancer or work at Flutter development company, our series will help you to become a Flutter developer.

Styling the home screen in your first Flutter app – introduction

In the previous post, we have started to build the home screen.

Today, we are going to add custom fonts and colors to the app and also we will add a smoke animation as a background.
This is how our app will look like after this post:
How to build an app with Flutter – home screen

The initial code, that will be used as a basis for this part can be downloaded here.
The final implementation is available here.

Skip to a section:

Flutter app uses Theme to share colors and font styles. We can define app-wide themes in MaterialApp or use Theme widget to change the style in a particular place of the app.

Defining colors

Let’s start with creating a new file app_colors.dart and define all colors needed on the home screen.

Having colors defined we can create a factory that will prepare the app theme using our colors.
To do that create app_theme.dart file with such code:

And we can use this style inside ‘MaterialApp’

To access an app theme in code we call:
ThemeData theme = Theme.of(context);

Customizing fonts

According to the design, the app has two fonts: Roboto-Medium and Roboto-Bold.

The first step is to paste font files to the assets folder. We did that for you and we prepared a fonts directory in the assets folder with needed files.
To let Flutter know about new fonts we have to define them in puspec.yaml according to the documentation.

The next step is to add text styles with new fonts to the app theme.
On the home screen, we have four different text styles.
Final implementation of AppThemeDataFactory should look like this:

To use a new font in the Text widget we have to set its style argument.
Let’s make some changes to adjust fonts on the home screen.

And now, running the app we can see that text has proper style the same as in the design.

How to build an app with Flutter step 13

Extracting strings

One more thing we can do to improve the quality of our code is to extract hardcoded strings to separate class. This helps with easy access to all strings we have in the app. The introduction of translations will be also easier.
To achieve that we will create strings.dart file in the utils directory with all strings defined as static variables:

And we can replace now all hard coded values like this:

Extract icons paths

The same as with strings we can do with paths to icons.
Create app_icons.dart file in the app directory. In that file define AppIcons class with all paths defined. All paths have the same prefix that is assets/images. We will define that as const variable _basePath.

And usage is similar as with strings:

Creating a smoke effect

The home screen is almost ready. One thing that is missing is smoke animation in the background.
We will solve that by playing a full-screen video.

Adding dependency

To play video in Flutter its team provides a plugin to do that. The video_player allows us to play both local video placed in the assets directory as well as videos from the internet.
Underneath it uses AVPlayer on iOS and ExoPlayer on Android.

To use external dependency we have to define it inside pubspec.yaml in the dependencies section and run flutter pub get in the terminal.

Creating a video player widget

The next step is to create a video player. We will do that the same as before with other UI components – as a custom widget.
In video_player‘s Readme we see that we have to add the NSAllowsArbitraryLoads key to the Info.plist file and internet permission to the AndroidManifest.xml file, but as we only want to play video located in the assets folder, we do not need to add that.

Let’s go straight to creating video_player_widget and place the file along with other home screen widgets:

  • We import video_player.dart so we can use its classes.
  • WideoPlayerWidget accepts videoPath as a required parameter. videoPath can be both local or remote file url.
  • Inside initState metod of _VideoPlayerWidgetState we define VideoPlayerController which allows us to control video playback.
  • Just after creating a controller using cascade notation we call initialize method which opens given data and pull metadata about video.
  • Once the video is initialized we call play method to start the video and also set looping to true so the video will play again once it finished.
  • Together with play method we call setState to ensure the first frame is shown after the video is initialized.
  • In build method we return VideoPlayer widget initialized with previously created controller.
  • In dispose method controller is disposed as well.

Placing a video on the home screen

As player widget is ready we can add it to the home screen. The video will be placed under other components. To achieve that we can use Stack widget which allows us to overlap its children. Top SafeArea will be wrapped together with VideoPlayerWidget in Stack

In the assets folder, we can find the fog.mp4 file which is used as an input for VideoPlayerWidget. To make it be recognized by the app we have to add videos directory to the pubspec.yaml assets section

And that is all, now we can run the app

How to build an app with Flutter – home screen

That looks exactly as we wanted to!
And with that, we have finished the first screen in our app.

Styling the Home Screen – summary

Today we’ve learned how to style our first Flutter app, how to use external dependency, and play video in Flutter. I hope our Flutter tutorial for beginners will help you in getting started with Flutter app development.

In the next article, we will create a network layer and learn about JSON serialization by connecting with air quality public API. Stay tuned, and good luck with your app!

In the meantime, check out in10 – RSVP & ETA Tracking App which we made with Flutter.

The post How to Build an App with Flutter – Part 4. Styling a Home Screen appeared first on Droids On Roids.

]]>
How to Create a Successful Mobile Application? 17 Tips from Experts https://www.thedroidsonroids.com/blog/creating-successful-mobile-app https://www.thedroidsonroids.com/blog/creating-successful-mobile-app#disqus_thread Mon, 04 May 2020 08:44:46 +0000 https://www.thedroidsonroids.com/?p=25144 17 practical guidelines on how to create a successful mobile app that will save your time, money, and increase the chances for success.

The post How to Create a Successful Mobile Application? 17 Tips from Experts appeared first on Droids On Roids.

]]>
Creating a successful mobile application is not a piece of cake. So far, we’ve looked at many different aspects of building a mobile application on our blog. We explained what a mobile app is, how to build a mobile app, and how much mobile app development costs in 2020.

But what does it take to create a mobile app that achieves success? To tackle this topic, we decided to ask three experts from areas such as UX/UI design of a mobile app, business development, and technology to share some tips.

Read on to find out how to approach building a mobile app to ensure that it achieves your business goals (and brings you glory and fame, of course).

Skip to a section:

1. A business perspective on creating a successful mobile app

Here are a few tips from our Business Analyst, Ireneusz:

Identify what “success” means to you (and the factors behind it)

To tell whether your application is successful or not, you need to first define what success means to you. It’s all about the metrics or events in the lifecycle of the application that you define as your objectives.

How else will you be able to talk about success? By definition, a successful mobile application is one that attracts many users and notes a lot of traffic inside the application. But you can add other parameters that are relevant to your business, such as quality or financial ones.

The following metrics and KPIs will help you measure the impact of your digital product on its target audience.
  • Daily and monthly active users
  • Daily sessions per daily active users
  • Retention rate
  • Churn rate
  • Cost per acquisition (CPA)
  • User lifetime value (LTV)

Explore the problem your app is designed to solve

Don’t forget that a mobile application is only a tool. The ultimate success of your product will depend on whether it helps users to solve a problem successfully. Many business owners find the basic task of identifying the problem challenging.

Remember that even the most attractive application based on innovative technologies and free of bugs won’t guarantee success if it doesn’t perform its basic role: solving a business problem.

How to explore the problem your app solves?

  • Start by identifying your target audience and learning more about it – not only the demographic data, but also their preferences and habits regarding digital products.
  • Use Product Canvas to bring all of your marketing materials to a single place and validate your solutions. Product Canvas combines user stories with personas, storyboards, design sketches, scenarios, and other UX artifacts.

Prepare your app from the marketing standpoint

To succeed, you need to build an image for your application that clearly communicates what the app is about to your target audience. Show which consumer needs your app fulfills or how it solves problems. Make sure that your application is easy to find in the crowd of other mobile products.

Be flexible, but know your limits

If you read any guide to software development, you’re bound to hear about how we all need to become agile and quickly react to the changing needs of our target customers. Most of the time, this approach leads to success. However, don’t forget that pivoting comes with its consequences.

If you design an application to solve a particular problem, it’s very unlikely that the problem will change this often. So, be flexible – but only within the boundaries of your problem. Avoid redefining the problem over and over again. Otherwise, you risk wasting your time and money.

Ireneusz
Business Analyst at Droids On Roids

Identify risks as early as possible

One of the most common problems among business owners (and especially startup founders!) is being too optimistic about the product. Sure, it’s good to be enthusiastic about your vision. But in business, being realistic about the risks and problems is a far safer direction.

Stakeholders who are part of building the product vision might hide or diminish risks that might become critical during later stages in the development or lifecycle of the application. The sooner you know the risks, the better. That way, you get a chance to document and analyze them. Once a risk becomes a reality, you’ll be able to react faster and more accurately.

Ireneusz
Business Analyst at Droids On Roids

Before we go further, let’s sum up the business tips on how to create a successful mobile app:

2. UX design

Here are a few tips from our UX/UI Designer, Jakub:

Define your target audience

Achieving success without this step is impossible. Before you set out to build your product, you need to know who is going to use your application – and for what. The business section of this article covers the basics of this step. But in the context of UX, defining the problem is more related to identifying how every element of your app creates a streamlined user flow directing users to their goal.

Define the problem your application solves. And then translate it into the design of your app, where every single element and interaction should shape the way to solving this problem as smoothly as possible. Be clear about the value proposition of your app before moving to the development phase. Not clarifying this at the outset will cost you a lot later on in fixes and pivots.

Jakub
UX/UI Designer at Droids On Roids

Ensure usability

When designing your solution, make sure that it’s clear and usable – i.e., it provides an environment for users to perform the tasks efficiently while enjoying the experience. Don’t reinvent the wheel. Use common themes, transitions, icons, and navigation features. You’ll find them in UI toolkits or starter kits like this one. That’s how you make sure that your app is easy to use by people who have experience in using mobile apps.

If you’re building an m-commerce app, you can find a list of such elements here: Top 24 E-Commerce Mobile App Features

Build trust

To achieve success, your application should make users feel unique and appreciated. Transparency and trust are key goals that should form the foundation for the interactions between the application and its users.

How to build trust with your app? For example, you can create a user-friendly and functional customer service system. You can also build a transparent and trustworthy rating or review system. These are just examples of the many ways you can build trust among your app users with design to increase their engagement and loyalty.

Jakub
UX/UI Designer at Droids On Roids

Listen to user feedback

Don’t forget that the application you’re building isn’t intended for you, but your target audience. That’s why you need to keep a close eye on how your users are responding to it. Ask users to review your app, use in-app net promoter score (NPS) surveys, and leverage beta testing.

Listen to user feedback and transform it into new features or improvements. Always grow your application in line with the suggestions made by your user base. This is a sure-fire path to success.

Before we go to the next part, let’s sum up the UI tips on how to create a successful mobile app:

How to create a successful mobile app – UX tips

3. UI design

Grab the attention of consumers

When releasing a mobile application, prepare to face a lot of competition. Make sure that your app attracts the attention of users. You can do that by investing in a custom design, animation, illustrations, or even 3D images.

Make the interface usable

When designing the user interface of your app, aim for usability, simplicity, and clarity. Focus on the main features of the application to avoid distracting users from the elements that build the user flow. Maintain the right balance or hierarchy between different visual elements (visual hierarchy). Essentially, the most important components of your app need to be more visible than other, less important ones. Check this article to read more about mobile app design trends in 2020.

Don’t forget about accessibility

Make sure that your application is accessible. Remember to address the needs of people with disabilities. When designing your user interfaces, remember to choose the right contrast.

Before we go further, let’s sum up the UI tips on how to create a successful mobile application:

How to create a successful mobile app – UI tips

4. Technology

Here are a few tips from our iOS & Flutter Developer, Damian:

Choose the technology stack

The technologies you pick for building your digital product are a critical factor in shaping its success. Depending on the timeframe, budget, and your app’s level of complexity, you can choose from different options.

When building a mobile app development, you can choose from three approaches that will determine your technology stack: native, cross-platform, and hybrid.

a. Native mobile development

This means that you will be building your solution individually for each operating system. Such an approach requires teams to follow platform-specific guidelines carefully and use different software development kits, environments, and interface elements provided by Android and iOS. It’s easy to integrate native solutions with the mobile ecosystem and provide users with exceptional stability, speed, and security. That’s why so many businesses choose native solutions over a hybrid or cross-platform app development.

However, this approach requires significant investment because you’ll need two teams to complete an application project for you because each is limited to one specific platform.

b. Cross-platform mobile development

Such apps can work on multiple OS – all it takes is writing a single code base that can be later used for different operating systems simultaneously.

Many business owners choose to build cross-platform solutions because, with this approach, they can get their app out faster to the market and accomplish that with a smaller budget. On top of that, a cross-platform solution will reach a wider audience.

However, depending on the technology you choose, a cross-platform solution might not deliver the performance or user experience comparable to native ones. Some of the most popular cross-platform technologies used today are React Native and Flutter.

If you’d like to learn more, check out this article: Flutter vs. React Native – What to Choose in 2020?

c. Hybrid mobile development

Hybrid applications are basically websites packed up in native containers. That’s how they can access specific platforms or device features. They are built with standard web tools and technologies such as HTML 5, CSS, and JavaScript. Hybrid apps look native and can be distributed through app stores.

The undeniable advantage of building a hybrid solution is that you get one solution that works for multiple platforms. Generally, hybrid solutions also come with the benefit of quicker launch and lower development costs.

But they also cause issues such as slower performance, higher risk of code vulnerabilities, lack of scalability, and potentially costly post-release maintenance.

Choose the supported platforms, devices, and systems

Before launching the development phase, you need to decide which technologies, devices, and operating system versions your app is going to support. To do that, pay attention to the market share of each technology, especially when making a decision about the operating system versions.

The more systems you decide to support, the more development work your application will require. This decision is also closely related to your budget. So, take a closer look at the market to understand which system versions your app should support to balance the costs and accessibility.

Choose your app monetization strategy

Ultimately, to be successful, your application needs to generate revenue. That’s why you should look into your monetization options already at the planning stage. For example, you can:

  • Offer your app at a charge in the app store – in this variant, you’ll be asking users to pay a amount before downloading the app on their devices.
  • Rely on in-app ads and purchases – this strategy is based on providing app users with extra features or helpful elements at a price.
  • Launch subscription programs – subscriptions are a sub-type of in-app purchases. Here’s how they work: once a user downloads an app, they often start a free trial to experience all of the app features. When the trial period is over, they need to pay a weekly/monthly/yearly fee to maintain access to these features.

All of these strategies have their pros and cons, so do your homework before settling on one.

Build an MVP

Your first step should be building a Minimum Viable Product (check out what is MVP). By delivering a product equipped with basic functionalities to your target audience, you can analyze their reactions, gather feedback, and introduce the required changes or improvements based on their suggestions. This will get you a few steps closer to success, which is building a digital product your target audience wants to use.

Learn more: How to Build a Minimum Viable Product – MVP Guide for App Owners

Rely on a solid app development process

Before starting to work on the application, plan how you’re going to build it. This is the moment when your development team chooses the tools, external libraries, and software architecture. These decisions are usually made as soon as the app requirements are defined.

Make sure that your app is tested as new functionalities are implemented. Make sure to cover all the scenarios tracing how the app is going to be used by end-users. Don’t forget about edge cases. Take advantage of tools that support the development process. For example, Continuous Deployment (an approach in which teams develop software in short cycles) can help you reduce the time needed to build and deliver an application version for testing – and positively impact the overall cost of building your application.

Damian
iOS Developer at Droids On Roids

Let’s sum up the technology tips on how to create a successful mobile app:

How to create a successful mobile app – developers tips

How to create a successful mobile app – summary

We hope that our expert tips and best practices help you in building a successful mobile application. Success on the mobile market is based on many different factors: the usability of your app, its capability to solve problems successfully, and how it addresses the key needs of your end-users. But you can position your app for success right from the start by implementing these tips.

Why outsource app development to Droids On Roids?

At Droids On Roids, we have been delivering iOS app development services and Android app development services for more than nine years, helping companies all over the world, including countries such as the USA, UK, Norway, Switzerland, and Australia. We developed more than 130 mobile and web applications for clients operating across many different sectors.

Our teams follow a six-step Quality Assurance process to provide our clients with the best quality of development services. We also follow the Scrum framework and other industry standards to deliver the highest business value.

If you’re looking for an experienced mobile development team, get in touch with us. We have the talent and expertise you need to make your app a success.

The post How to Create a Successful Mobile Application? 17 Tips from Experts appeared first on Droids On Roids.

]]>
https://www.thedroidsonroids.com/blog/creating-successful-mobile-app/feed 0
How to Build an App with Flutter – Part 3. Creating Home Screen https://www.thedroidsonroids.com/blog/how-to-build-an-app-with-flutter-home-screen Thu, 30 Apr 2020 07:53:21 +0000 https://www.thedroidsonroids.com/?p=24948 Learn how to build your first Flutter app. This time we will focus on creating a home screen.

The post How to Build an App with Flutter – Part 3. Creating Home Screen appeared first on Droids On Roids.

]]>

How to build an app with Flutter? Follow our series “Flutter app development tutorial for beginners”. We’ve published the following posts so far:

What’s more, we prepared also a Roadmap that can be useful in your Flutter development journey:

Whether you want to work at Flutter development company or be a freelancer, this knowledge will help you to become a Flutter developer.

Creating a home screen in the Smoge app with Flutter – introduction

In the last post about project setup with Flutter, Karol showed us how to set the Flutter environment up, so without any additional work, we can dive into the best part – coding 🙂

In this article, we will learn, step by step, how to create a home screen of the Smoge app with Flutter. In particular, we will focus on:

  • organizing your project with smaller classes and directories
  • building UI using basic Flutter widgets
  • creating a custom widget and animations
  • using assets in Flutter
  • writing the code that will be easily maintainable.

This is a preview of what we want to achieve:

How to build an app with Flutter – home screen

Download the initial code, that will be used as a basis for this part here.
The final implementation of the first screen is available here.

Skip to a section:

There are many successful apps made with Flutter on the market. Maybe your will be the next one! So, let’s get to work.

Splitting the code up

In the lib folder, we can find the main.dart file. This file is created automatically together with the entire project. Inside this file, we find three main parts:

  • main() function which is the entry point for the app. This function calls runApp() to start the framework.
  • MyApp class, which is the root of the whole app. Here we can define a home screen and a theme for the whole app. MyApp extends StatelessWidget which makes the whole app itself also a widget.
  • MyHomePage class, which is a home screen of the app. It extends StatefulWidget. That means the home screen has its State object (_MyHomePageState that starts its definition at line 46). This widget could look differently depending on its internal objects(in this case it’s counter parameter).

As you can see, all of these parts are in just one file. Let’s start with a small refactoring and move all these parts to separate files and remove default comments.

Create two directories in the lib folder:

  • app – to store classes related to app configuration: colors, icons themes, etc.
  • ui – to store screen classes

Building Smoge app step 2

Create smoge_app.dart in the app directory. Move MyApp class to the newly created file and rename it to SmogeApp.

Keep in mind that the file naming convention in Dart is using only lowercase letters and underscores for word separation. More about Dart language style you can read at Dart’s guide website.

Move MyHomePage class to lib/ui/home directory and rename the class to HomePage. Also, remove code related to the counter as we will not use it.

In main.dart leave only the main method that runs SmogeApp. After that, the code is more separated, easier to read, and maintain.

One more thing we need to change to make the project compile is to rename MyApp to SmogeApp in widget_test.dart.

Now we can run the app and see only a navigation bar and a white background.

How to build an app with Flutter – Flutter Demo Home Page

Now, let’s go to the next important element useful when you want to create your first app with Flutter and learn how to build a Flutter app – Building UI.

Building city title widget

As a top widget of our home screen, we will use SafeArea.

SafeArea widget adds padding depending on the operating system to avoid overlapping with a status bar or a notch on some phones.

The whole content is aligned vertically one after another so as a child of SafeArea we will use Column widget.

At the top of the screen, we have a label with a city name. To build it we will use Text widget.

And that is enough for now. Let’s put that in code and change _HomePageState like this:

Building of the title is located in a separate method to make code cleaner and easier to read.
Underscore (_) as a function’s prefix is used in Dart to mark this function private.

And now run the app.

How to build an app with Flutter step 3

The text label is below the status bar and notch due to the SafeArea widget.

But the text label is not centered horizontally on the screen. Why?

The problem is that the Column widget adjusts its width to cover all the content, so in our case Column width is the same as a text label.

To stretch column full screen add property crossAxisAlignment and set it to CrossAxisAlignment.stretch.

Now It looks better. Text size and font of the text label is not the same as on designs but we will fix that later 🙂

In the next paragraph, I describe another crucial element useful if you want to learn how to build an app with Flutter. Creating animations.

Creating animated widget

The next step is to create a text with a percentage at the center. This text needs to be animated from the value of zero to the given number.

Animations, Yay!

We are going to create this widget in a separate class and we will pass two values to it: fromValue and toValue. All animation logic will be inside this widget so our home page will stay clean and readable.

First, in the home directory create a new one called widgets. Here we will create all custom widgets needed on the home page. Create new Dart file animated_percentage_widget.dart and paste below code:

AnimatedPercentageWidget extends StatefulWidget because its state will be changed during the animation.
In the constructor, we can pass three parameters: fromValue, toValue, and duration. We set a default value for the duration parameter so it can be omitted during widget creation. Before calling the super method we check if all required values aren’t nulls to avoid null pointer exceptions and application crash. Also, we check if fromValue is less than toValue.

The default value of the duration parameter is created with the const keyword.
const is an optimization. It helps Flutter to easily compare representations of widgets and decide if it needs to be rebuilt.
To use the const keyword all widget’s parameters have to be final.
The more detailed explanation you can find in this post.

createState() method needs to be overridden for a stateful widget in order to create data that will drive the widget.

_AnimatedPercentageWidgetState is a private class that extends State, a generic abstract class. It is a Flutter template for creating custom widgets.

To run animation in Flutter we need instances of two classes: Animation and AnimationController

In our animation, we will use a ticker controller and a setState method.
A Ticker is an object that calls a function every frame.
Widget state includes SingleTickerProviderStateMixin. This mixin takes care of the hassle of managing the ticker. With that mixin, our state becomes secretly a ticker provider. What this means, is that the Flutter framework can ask it for a ticker.
Most importantly, AnimationController can ask it for a ticker.
AnimationController needs a ticker for its two functions. If you use SingleTickerProviderStateMixin or its cousin TickerProviderStateMixin you can give ‘this’ to the AnimationController.
AnimationController is what you normally use to play, pause, reverse, and stop animations.
Instead of pure tick events, it tells us at which point of the animation we are at any time.

In our case we want to animate from one value to another, so we will use Tween animation.
In the Tween constructor we put fromValue as begin and toValue as end parameters.
Right after the constructor, we call animate function passing AnimationController as its parameter. This function returns Animation which is driven by a passed controller.

On the animation object, we call addListener function to be notified every time the value of the animation changes.

The standard way of setting a listener would create animation and then set the listener on the animation object like this:

Thanks to Dart’s cascade notation we can call the subsequent ‘addListener method on the Animation object. ‘addListener is a void method so it does not return any value but as a cascade notation ignores any subsequent return value we still get Animation object and can assign it to _animation parameter:

Inside the listener we call the setState method. setState notifies the framework that the internal state of the object has changed. In our case, we change the _number parameter value to one provided by animation.

The last step is to call the forward method on the controller to start running animation.
Don’t forget to dispose of AnimationController. This can be done in the dispose method of the widget’s state.

As the animation is ready, what’s left is to build a Text widget with _number value:

Placing an animated widget on the home screen

Now is the time to add just created widget to the home screen. Let’s do the same for building this widget as it was for the title which is in a separate method.
Both with percentage value let’s add a label that is underneath.

How to build an app with Flutter step 5

Both widgets are one after another vertically so wrap them in Column:

Running the app we get such results:

Flutter Smoge app -step 6

The animation is working!

The whole content should be placed in the center. To achieve that we need to wrap the created column in Expanded widget, so it will take free space of parent Column and also to center content vertically inside it we will set mainAxisAlignment to MainAxisAlignment.center.

 

And now the content is in the center!

How to build an app with Flutter step 7

Creating custom widget

What we are missing on the home screen is a bottom widget with the activities.
This one will also be created as a separate widget to keep code well organized.

How to build an app with Flutter step 8

We will need some icons to build this widget so let’s start with that.
In the assets folder at the root of the project, you can find all the needed assets.

Flutter uses the pubspec.yaml file to identify assets used in the project.
Open this file and in the flutter section and assets subsection, we have to define all assets that the project uses.
To add images folder to be used by the app make such entry in the pubspec file:

Keep in mind that in case of adding files from subdirectories, we need to create an entry for each directory.

Having assets included in the project, let’s dive into widget building.

Inside the activities widget, there are three separate activities places horizontally.
Every activity looks similar, so it is a good idea to make a separate widget from it.

Building a single activity widget

So start with creating ActivityWidget:

There will be three types of activities: walking, running, and biking.
And we want to display a mark if air quality is good or bad for a given activity.
Create enums with all those types:

To ActivityWidget we will pass activity type and quality. Depending on those two values, the widget can be configured appropriately.

Let’s go step by step through this file.

  1. At the top, there is a private abstract class in which constant values are defined.
  2. Next, there are two enums described before. Enums were moved to this file in a matter of readability.
  3. ActivityWidget extends StatelessWidget as it won’t change during the widget lifecycle.
  4. The constructor receives two parameters: ActivityType and ActivityQuality.
  5. At the bottom of the file, there are three helper methods. One _titleForActivityType returns activity name based on passed activityType and the second one _imageForActivityType do the same but instead of name it returns an icon for activity.
    The last one _buildWarningBadge returns a proper widget depending on passed ActivityQuality: an empty container for good quality and an Image widget with a warning icon for bad quality.
  6. Thebuild method creates the whole widget using helper methods. Because the building is complex, private methods were created to make it easier to read.
    As a parent widget, we used Expanded as it has to expand in its parent.
    Next in the hierarchy, we put Stack to show badge warning icons above the rest of the content.
    Inside Stack, we placed a badge icon at the top, right corner. To do that badge icon have to be wrapped by a Positioned widget:The second child of a Stack is an activity container that has a white background with rounded corners and a column of an activity icon and name.
    The Container has padding from right and top equal to half the size of the warning badge. To achieve that we wrap the container with Padding widget:To build an activity container with rounded corners and shadow we used Container widget with box decoration:Inside the container, one thing that misses is the activity icon and name. These two are children of Column centered in a container.

Building an activities widget

As the ActivityWidget is finished it is time to create a widget showing all activities with their quality:

ActivitiesWidget accepts Map where the key is activity type and value is activity quality. Iterates through that map widget build next ActivityWidgets:

To place the elements horizontally we use Row. To make sure the spacing between elements as well as before and after the first and the last element is equal we set mainAxisAlignment to MainAxisAligement.spaceEvenly.

The activities widget is ready!

Placing an activities widget on the home page

Let’s add it home page to the bottom of the screen with bottom padding:

And run the app:

How to build an app with Flutter step 9

And it looks pretty good, doesn’t it? 🙂

Wrapping last screen element up

The last thing, that is missing on the main screen is the details label with an arrow underneath.

How to build an app with Flutter step 9

To build that we will use a well known already Column

Based on the design text has 50% opacity. To achieve that in Flutter we wrap Text in the Opacity widget.

How to build an app with Flutter step 10

Running the app we can see that the percentage widget takes the whole free space and the details are placed just above activities with height adjusted to its content.

What we want to achieve is to have the percentage at the center between the top label and bottom activities and details at the center between the percentage and activities.

To do that we will create Column with three children:

  • Expandable container to fill top free space
  • Air pollution information with height fitting its content
  • Details column wrapped with Expanded to fill space below the air pollution information

To place the percentage at the center, the Expanded widget above and below it has to have the same flex value.

flex determines the amount of space the child can occupy in the main axis by dividing the free space according to the flex factors of the flexible children.

The default value of flex is 1. It means that both Expanded widgets above and below percentage will occupy the same amount of space and with that, the percentage widget will be at the center.

It should look like this:

How to build an app with Flutter step 11

And the code looks like this:

The air pollution column is not wrapped in Expanded anymore so it shrinks to content size.
The details column is wrapped in Expanded to increase its size to available free space.

And the home screen looks as we desired.

How to build an app with Flutter step 12

And that’s it for now!

Congratulations, you have built your first UI in Flutter 🙂

In the next post, we will style the app by adding colors and text styles.
We will also learn how to add the smoke effect in the background.

Creating a home screen in Smoge app with Flutter – summary

We’ve learned how to create a beautiful home screen in your first Flutter app. We discussed elements like organizing your project with smaller classes and directories, building basic UI with Flutter widgets, and using assets.

How to create home screen in your first Flutter app

I hope our Flutter tutorial for beginners will help you in getting started with your Flutter mobile app development. Read the next article about styling the app with Flutter, by adding colors and text styles.

In the meantime, you can check out in10 – RSVP & ETA Tracking App which we made with Flutter.

The post How to Build an App with Flutter – Part 3. Creating Home Screen appeared first on Droids On Roids.

]]>
6 Common Mistakes to Avoid when Developing a Mobile App for your Business https://www.thedroidsonroids.com/blog/common-mobile-app-development-mistakes-avoid https://www.thedroidsonroids.com/blog/common-mobile-app-development-mistakes-avoid#disqus_thread Mon, 27 Apr 2020 08:14:22 +0000 https://www.thedroidsonroids.com/?p=24878 We outline 6 common reasons why mobile app development projects fail and identify areas for improvement

The post 6 Common Mistakes to Avoid when Developing a Mobile App for your Business appeared first on Droids On Roids.

]]>
This article will outline 6 common reasons why mobile app development projects fail and identify areas for improvement. We illustrate each mistake with a short case study.

Skip to a section:

Introduction

  1. No Value Proposition or solution for user problems
  2. Not adapting to market changes
  3. Copying other similar apps
  4. Not enough attention to research
  5. User overwhelming
  6. A love affair with animations

Summary

Introduction

How many mobile apps have a chance to succeed?

In 2019 alone, users downloaded 204 billion applications.1 How many of them statically have a chance to succeed? About 0.01%. This means that only 1 out of 10,000 launched apps will be profitable and recognizable.2

When thinking about a beautifully designed product, we can’t forget about its users and their needs

Publishers are always trying to respond to the question of why mobile applications are not successful. The most commonly given reasons are:

  • a weak User Experience,
  • the app does not solve users’ problems,
  • bad visual aspects like Brand and Product Design.3 4 5

This means that Product Owners and managers often tend to think about the solution – a final, beautiful looking product.

That’s great because such thinking sets us into the vision of the project. Still, we can’t skip the road and not think about our users and how they will use the product, who they are, what their needs are, and how our product can make their lives better. The increasing importance of user experience is one of the latest design trends in mobile app development for 2020.

Let’s go deeper into the reasons why most mobile apps are not successful, what you can learn from them, and, ultimately, what common mistakes you can now avoid at the start of every project.

Popular mobile app development mistakes to avoid when developing a mobile app for your business

1. No Value Proposition or solution for user problems

The unique benefits of your app functionalities for your users are one of the most important things. Even if you have a great design, engineers, a budget, and various other resources, if the app doesn’t resolve users’ problems, the risk of not succeeding is high. According to Forbes, lacking a value proposition* is one of the main reasons, why mobile apps not succeed.

A value proposition is a promise of value to be delivered to your users.

Google+ case study

In 2011, Google launched a new social networking app initially codenamed Emerald Sea, and later known as Google+. The new social network was available on all platforms desktop, iOS, and Android. Its creators took some pieces of inspiration from Twitter, Facebook, and Beluga, forming Google+ as the public came to experience it.

The main idea behind Google+ was simple: help to connect people with their closest friends and families, neighbors, coworkers, etc. However, a controversy was raised amongst the team with the choice of the content display model.

Managers picked the Asymmetric Follow Model – the same as Facebook, Twitter, or Linkedin. This means that you need to follow somebody to see their posts.6

The model in itself gives enormous opportunities for growing a social media app because it works a bit like pinballs, which cause addiction (just like gambling).7 Actions on content such as comments or likes ensure this content is displayed for friends. Ultimately, this creates huge content distribution ranges.

But the model doesn’t guarantee that our closest friends will see what we wanted to show them – and that was the basic premise

Also, the content ranking based on likes and comments didn’t help to resolve the main users’ problems. The assumption was that the user wants to see what is happening with their loved ones. Auntie’s published photo from vacation will not necessarily be popular with other users.

So, the main reason why Google+ failed was its lack of coherence unique values for its users relative to competitors such as Facebook, MySpace, and Twitter. What’s more, even Google’s own products, like Gmail or Google Photos, cannibalized the idea.

To sum up, one of the main mistakes that can ruin your mobile app is ignoring user needs and not giving them a value proposition.

2. Not adapting to market changes

Vine app case study

Imagine a mobile app that allows you to make 6-second clips and share your moments of life with others. Sound familiar? No, I’m not talking about Instagram, Tik Tok, or Boomerang. I’m talking about Vine.

Vine was a free mobile application founded in 2012 that allowed users to record and share an unlimited number of short, looped video clips with a maximum length of six seconds.

In 2013, it became the fastest growing mobile app in the world.

Vine was used by actors, singers, and celebrities, but also by regular users. Thanks to Vine, many people who are known celebrities today gained their initial fame.8

So what went wrong? Ankur Thakkar, Vine’s head of editorial, said that the network didn’t ship anything for a year. So, the main problem was that the app stopped following new trends and engaging users, alongside not developing any new features.9

It is crucial to adapt your product to market conditions and track your competition. New functionalities increase the involvement and user experience of mobile apps.

You can see in the example of Vine that, even if your product is great and is gaining popularity, you must remember to constantly take care of its top-notch user experience. Not adapting to market changes is one of the most common mobile app development mistakes to avoid.

3. Copying other similar apps

Different mobile applications screens

Shot from Dribbble.com showing Uber-like apps

There is no one example, because how many unsuccessful apps do you know? Right. You don’t know them, because they did not succeed!

Often, founders think “Uber did the trick – let’s copy them. We’ll definitely succeed.” That’s not how it works.

As I wrote in the introduction, a Gartner study revealed that mobile apps’ commercial success rate for the year 2018 was 0.01%. So it’s important to find your niche and give the right functionalities, as well as choose recognizable colors, unique illustrations, and experiences that users will love. Product Canvas and Personas are examples of tools that can be useful in clarifying your mobile app business idea.

Remember that each mobile product is unique and has its own goals, value, audience, and functionality. Copying a well prospering solution doesn’t give you the guarantee that your app will succeed. Look at the example of Google+, which I wrote about earlier.

Ask yourself: how can I create a unique value for my users? How will my app change their lives and make them better? What is attractive to them? If you copy all your colors and visual aspects, how will users remember your product? Think about it and remember that you can be the trendsetter in your industry and others will be copying you.

To sum up, one of the worst mistakes mobile app owners can make is to copying other apps without creating any unique value for its users.

4. Skipping or not paying much attention to research

Hailo app case study

Hailo was the English equivalent of Uber, created in 2011. It allowed users to order only licensed taxi drivers. One year later, they pulled out of the North American market. What happened?

Originating from the UK, Hailo’s business model was based on using professional taxi drivers, such as Black Cabs in London. Users on the native market loved that. The owners wanted to do the same with Yellow Cabs in New York City.9 10 By acquiring new markets in 2013, they received 100 million dollars of financing in the USA.11 Yet, it later turned out that their idea did not work out. Why?

Shahar Waiser, the CEO of Gett, who was the main Hailo competitor, said that cabs in New York work differently than in the UK. “In Manhattan, there are only Yellow Cabs, so people don’t need an app to call Yellows because they are always available.”

So, if you wanted to take a Yellow taxi, you didn’t need an app for that. You could just catch the taxi on the street. Statistics show that Hailo had an 80% rejection on orders of yellow cabs because users at that time caught another yellow taxi.12

In New York City, only Yellow Cabs are privileged to take passengers from street hails. The black ones can’t legally pick people up unless the cab is ordered beforehand.

Uber knew that and responded to the needs of users, while also resolving the problem of the legality of receiving passengers by black taxis. At the beginning, they launched Black Cabs in New York City, and they soon became the world’s leader.

Hailo also met technical issues in New York City. Not only is the payment system depreciated by modern standards, the application also has technical problems connecting the Yellow Cabs (and the respective network/hubs) themselves to the application.

To sum up, one of the most common mobile app development mistakes is ignoring market research.

5. User overwhelming

Screens of Healthy Drinks app by Philips

Healthy Drinks app by Philips

Mainly to show an example, I found the first ‘better’ application with a relatively poor rating in the App Store. I came across this Philips app, designed to help create healthy shake and cocktail recipes.

I recommend persistent people to download the application and check its user experience. However, the above photos present the overloaded content which I have in my mind.

Oliver Reichenstein, the CEO and founder of Information Architects Tokyo, once said: “The good design is invisible.”13 Take a look at the most popular apps in the world, like Messenger, Instagram, Tic Toc, Whatsapp, etc. They are simple, smart, and easy to use because they have been well thought out.

Design Foundation is one of the most critical and influential digital design education companies in the world. They’ve prepared a list of the most common mobile apps mistakes. Several of them are repeated patterns like Information overload, navigational problems, undesigned user journeys, useless images, and unnecessary animations, which seem great at first glance, but they don’t help solve your users’ actual problems.

6. A love affair with animations

Since 2018, we have been observing a significant increase in the importance of animation in applications. On one hand, this is good to hear, as it means that the designer industry and the overall quality of products are growing. Animations are an essential part of providing positive experiences.

On the other hand, the second answer on why people delete an app is “limited storage”. If your app will be too heavy then (and many animations make the app “heavier”), while cleaning their smartphone, there is a huge possibility that a user will choose to remove your app.14

As said, Design Foundation, “Unfortunately, designers tend to have a love affair with animations, partly because animations are so fun to create that we might not know when to stop.”

We should remember that too many animations make an app “heavy”. Likewise, the second answer on why people delete an app is “limited storage”. Both of these factors mean there is a huge possibility that a user will remove your app from his smartphone if you implement too many animations.

Paypal Concept example

Let’s take an example from the digital world. The above animation is just gorgeous, but it takes about 3.5 seconds to display the details. Simplifying this step would significantly improve user experience.

Also, the product description is too low in contrast. In the case of PayPal and its wide range of users, including those affected by sight impairments, it would result in hundreds of thousands of people who would have difficulty reading it.

Those are edge cases, but sometimes they are very important in the usability field of mobile apps. You have to remember that not only the idea and functionality matter but also small things like animations, colors, fonts, etc.

To sum up, one of the common mobile app mistakes is implementing too many animations in an app. Animations are essential elements for interfaces but only when they are used wisely. Learn more about essential mobile app design trends for 2020.

Common mistakes that can ruin your mobile app – summary

We hope, that being aware of the common mistakes in app development for iOS and app development for Android, will help you to create a top-notch and successful application.

To sum up, you should have a user-centric approach. Everything you will do in your app should be done with user satisfaction as a priority.

6 common mistakes in mobile app development

Pay attention to the in-depth market research, create a unique value for your product’s users, do not overwhelm users with content and animations, and remember to adapt your app to the market changes.

If you want to clarify your app idea, make sure that it will create a unique value, and solve users’ problems, check out our 3-day Product Design Workshop (which can be run also remotely). Good luck!

The post 6 Common Mistakes to Avoid when Developing a Mobile App for your Business appeared first on Droids On Roids.

]]>
https://www.thedroidsonroids.com/blog/common-mobile-app-development-mistakes-avoid/feed 0
How to Make an Airline App like Ryanair in 2020 | Process & Cost https://www.thedroidsonroids.com/blog/how-to-make-a-travel-airline-app-like-ryanair-in-2020 https://www.thedroidsonroids.com/blog/how-to-make-a-travel-airline-app-like-ryanair-in-2020#disqus_thread Fri, 17 Apr 2020 11:37:45 +0000 https://www.thedroidsonroids.com/?p=24587 Learn how to create a successful mobile application for airlines like Ryanair, and check out how much it costs.

The post How to Make an Airline App like Ryanair in 2020 | Process & Cost appeared first on Droids On Roids.

]]>
How to make an airline app like Ryanair? How much does a Ryanair-like app cost? If you want to know the answers, you are in the right place. This article will cover topics like:

If you already know how to make an airline app and how much it costs, we recommend you to check on how to choose the best mobile app development company for your digital project.

Mobile applications for airlines – overview

Did you ever book a flight? Did you like how that was done? Ryanair, WizzAir and other airlines try more and more to tempt you with new technologies to raise their profits and they do it right. Planes and airports are full of new technical solutions, like internet access on the deck or a virtual assistant at the airport hall.

However, can we say the same about airlines in the mobile sphere?

If we will look at the Google Play Store or Apple App Store, there are plenty of Ryanair-like apps, but their quality varies a lot. Some of them are just pure pleasure to use but, on the other hand, others are useless and frustrating. Nevertheless, people download and use them.

What do airlines get from the mobile platform?

Let’s face it. From a business perspective, the main goal of the app is to make profits. In these apps, the flight’s bookings are the main source of earnings. However, there are some less obvious profits too.

These apps contain many other features, such as online check-in, which relieves the airport service and airline call center. Another example is the possibility to manage reservations, which provide users the ability to buy extra seats or baggage. These are, of course, other slices of the profits cake.

The airline mobile app can also add additional features, usually not available on any other platform, like:

  • Accurate localization, which helps to show more exact solutions, such as auto-filling the nearest airport as a departure location or even navigation within the airports, if it supports indoor maps;
  • Push notifications, which makes users better informed and encourages them to use the app more often;
  • Mobile wallet, which helps the users during the payment process, as well as to store tickets, right on their phones;
  • Integration with device sensors such as a camera, to scan and recognize ID cards to autofill data;
  • Augmented Reality (AR), which extends the app’s features to the real world, showing information over a view generated; from the camera. Let’s think about such a fancy example when you are standing in the plane and the app shows where your seat is located on your camera, so there’s no need to search for seat numbers;
  • and much more…

If you want to build an airline app like Ryanair successfully, you need to understand that offering your clients a unique experience is essential for building a stronger attachment to your brand.

5 reasons why airlines need a mobile app

Why is Ryanair’s app the perfect example?

As you’ve likely noticed from the title and the earlier paragraphs, we have mentioned a lot about the Ryanair app and you can think about why we chose this app. There are many airline apps, branded by similar famous brands, but Ryanair’s is well-designed and based on the reports, as well as nearly 800k installs, it is the most popular airline app in 2020 so far. It has also thousands of reviews with a nearly 5-star rating on the App Store.

This all shows that it is one of the most popular airline apps in the world and a perfect example to analyze airline apps. So, that’s why everyone wants to know how to make an airline app like Ryanair.

Airline app development process – 7 main steps

Let’s assume the situation, where we are an airline corporation with a completely functional website. Clients use it to book flights and manage reservations, so it is fully connected to third-party providers which deliver solutions for checking availability and booking flights, managing previously-created reservations, accessing loyalty program and many more.

This is a very important assumption because the mobile app is usually fully functional when it is connected with the backend. The app is lightweight and often just shows the user interface and sends API requests in the right order. It is a quite common combination where the backend produces a larger part of the work.

Thanks to this, we can focus on the application, which is usually an addition to the working solution. Ryanair had their system before, so answering the question of how to build an app like Ryanair won’t be too complicated.

Many people think that creating a mobile app comes down to just development. However, from a business standpoint, it has some more steps that every app owner should know, such as:

  1. Clarifying the vision – the app which we are going to create should be well-defined. Without this, it will be hard to explain what we want;
  2. Choosing a partner – we need someone who will help us to create this application and, in our interest, it is best to outsource it to a software house or hire developers to our company.
  3. Wireframes & design – before the developer starts his or her work, they need to have a well-designed user interface and flows in the app;
  4. Project kick-off & setup – this is a start point of development, where we get to know what kind of technologies will be used and plan the first process iteration (choosing the Technology Stack – I write about it below);
  5. Development – here is the great part where we see how our app is starting to become real;
  6. Release preparation – the app is now done but we still need to prepare some legal information, press announcements and check the final version of the app;
  7. App maintenance – after the release, the app will probably have some bugs to fix and new features to add, so we need some maintainers to implement this.

We should note that these steps don’t just cover how to create a mobile app for airlines, but also show the development process of every app, from the idea to time after release. If you want to learn more about them, check out the mobile app development process guide.

How to make an airline app like Ryanair: key features

As you could notice earlier, I mentioned a lot of possible features and it is time to wrap them up. We could think that the airline app may not be so big but it is huge with, containing multiple flows and many screens.

Flight booking

The most important and valuable feature in the app. Thanks to this, we are getting new clients on board and generating profits. The flow for booking doesn’t just involve selecting a flight, as it has multiple other steps. Users have to fill up their passenger information and buy some ancillaries, like seats, extra baggage or insurance. They can also pay with different payment solutions, such as credit cards, miles or even don’t have to pay at the moment, choosing to pay later.

Manage reservations

After a successful reservation, the user may want to update their data or check the flight details and this is the place where to do this. It is also possible to select and buy seats and additional baggage, pay for the unpaid reservation and manage notifications about flights. Paid reservations can be changed to another date or with the different cabin class for a small fee. They can also be canceled completely, with a refund.

Check-in

Short before the flight, users can check-in. Usually, they could do this at the airport before baggage control, but nowadays it is possible online. When the check-in process starts, users get a notification. After that, they fill up their passport information, are noticed about dangerous goods and are given the last opportunity to select and buy seats (rather than system-chosen seats). After a successful check-in, users get boarding passes in a special mobile format, which can be added to the mobile wallet or be visible just in the app, presenting QR code to scan at the airport.

Loyalty program

Many airlines offer some kind of loyalty program. Thanks to this, users can get rewards for multiple flights and journeys with the same company. Usually, customers get points, commonly known as Airmiles, which are exchangeable on gadgets, access to lounges and even free flights.

Under the loyalty program, there are many functions like a miles calculator, buying and transferring miles and claiming miles. All of these features are connected with one major – a user account, which is another big element of the app.

Flight status & watch

A slightly less important feature, but one that is regularly available in airline apps, is flight status. Thanks to this, users can see live information about upcoming and airborne flights. This information includes departure and arrival date, delays, terminal, and gate numbers or even live preview of the flight on a map. Additionally, each flight can be added to the watch list and the user will get notifications about status changes.

After-flight reservations

Many airline apps aren’t just for flight bookings, as they also offer other services. So, we can reserve a taxi after our flight or rent a car, book a hotel room or even buy tickets for local attractions. Some of these apps can even show these services on camera in AR to help you not get lost after the flight. If you want to learn how to build an app like Ryanair, you have to think about all the needs users have that are connected to your flights. That’s what they do.

Key features of an airline mobile application

Focusing on the main features

As you’ve likely notice, there are quite a lot of features to be implemented but it is important to choose the must-have ones to make the app live as soon as possible. As we said earlier, in the case of an airline app, flight booking is the most important feature, and, with just that, the app can go live with version 1.0.

Other features, like managing reservations, check-in and loyalty programs could be included in subsequent versions, so we end up with version 4.0. Flight status and other features can be the next versions but let’s face it, it is just nice to have elements and their main purpose is to attract users.

Technology Stack used to build an airline app like Ryanair

The technical matters of the app are usually not truly important for app owners, but it is good to know even brief information about that. Before the start of development, we have to answer some questions, like which platform are we going to support, what is the lowest system version or do we use native or hybrid technology. All of the answers have positive implications, as well as drawbacks.

Let’s focus on our app. At first, we have to choose the platform and, like most people know, there are two options – Android and iOS. This may look like a silly question because the apps are usually written for both of them but remember that, with some exceptions, it costs twice as much for one platform’s support. As we want to reach as many users as possible, it’s worth to choose both.

With this choice, another question appears – are we going to use native or hybrid technology? The native app is relatively more stable than the hybrid one but it must be written for each platform separately, so it takes more time.

Otherwise, usually, the hybrid app needs less development because the code base is for both platforms. However, new features on the systems come with delays. Moreover, because of hybrid technology constraints, some elements must still be written separately in the native solution.

Otherwise, usually, the hybrid app needs less development because there is one codebase for both platforms. However, new features on the systems come with delays, because developers responsible for hybrid technology needs time to rewrite these new features to the hybrid codebase.

Moreover, hybrid technologies are not developed by system providers and may not contain some of the system-specific elements, then some parts must still be written separately in the native solution. So hybrid app development can save your time and budget, but not in every project, especially no if it’s very complex and needs a lot of newest system features.

Our app is mostly the user interface for the backend, but it has a lot of modules, and, with time, there might appear some unexpected situations that increase costs, so let’s choose native technology. (But if you are interested more in hybrid technologies, here you can read Flutter vs. React Native – a comparison for business owners.)

At this point, developers make other decisions, like which coding language or libraries should be used.

Technical stack shared between iOS and Android:

  • Bitrise – a well-maintained project needs a CI (Continuous Integration) service, which delivers builds to the QA team and the client. In our work, we use Bitrise, which is focused on mobile development and provides many useful open-source steps, like the Chuck Norris jokes step 😉
  • Firebase – a service provided by Google with a huge number of functions. In our projects, these are usually used for crash reporting and analytics.
  • Zeplin – used by our designers to provide us with interactive designs of the project. We can check the parameters of each element of the screen, import images to the project or even generate code.
  • Google Sheets – known by everyone, but how can it be useful in developing a mobile app? Well, it is the best place to store translations texts and sync them automatically with the project.

iOS app technical stack

Yet, for the sake of completeness, here is the iOS technical stack from a similar project of ours:

  • XCode & Swift 5.2 – in iOS projects, we don’t have a big choice for IDE (Integrated Development Environment) or coding language. XCode may not be the best editor, but it is supported by Apple and other IDEs are based on its functions. Swift is the only reasonable choice for the coding language now. The old Objective-C is hard to use and may increase development time.
  • Cocoapods – the most common dependency manager for iOS development. Although Apple officially supports SPM, many libraries still only use Cocoapods. Some of the libraries that we use are SnapKit for easier layout management using code, SwiftLint for warnings about wrong code style or Quick and Nimble for better-organized tests.

Android app technical stack

(prepared by Dawid – our Android developer at Droids On Roids)

  • Android Studio & Kotlin version 1.3.50
  • Hyperion for Android – a menu library with functionalities like inspecting attributes, checking measurement information of views, and a crash plugin. The crash plugin stack display came out as the most practical.
  • WebView – came in handy when displaying various static content from the client’s web page as well as handling the part of the payment logic that needed interaction with external providers on their web pages.
  • STF (Smartphone test farm) – it consists of a farm of Android/iOS smartphones, where each device can be accessed remotely. It’s especially convenient for testing application behavior on multiple devices.
  • Android Debug Bridge (adb) – a tool for communicating with a device through a command-line.

We are making the airline app and, as discussed earlier, the backend is very important. So it is good to mention some API providers for airlines:

  • Sabre – solution for booking flights, buying ancillary services, generating boarding passes and many more
  • Routehappy – provides rich media for airlines, like previews of airplanes or maps of airports
  • AviationEdge – API for finding flight routes and schedules

We have clarified the key features of a mobile airline app, and the technological aspects, so now we can estimate the time and budget needed for your airline mobile application.

Building Ryanair-like app – Time & Cost estimation

How much does it cost to develop a mobile app for airlines? The following estimations are based on our 9-years of experience and market knowledge. Moreover, in the last 2 years we have been working on a mobile application for airlines, so we also strong practical background in this area.

Let’s make the following assumptions:

  • We create an app for 2 platforms – iOS and Android;
  • We have a basic team set-up: 4 developers per platform, 1 designer, 1 Scrum Master, 1 Quality Assurance Engineer;
  • Both iOS and Android app are created at the same time, simultaneously;
  • A designer begins his work before the start of development and continues during developers’ work;
  • A month consists of 4 one-week sprints;
  • Developers / designers work 35 h per 1 week;

Hourly rates:

  • iOS and Android developer hourly rate = $55 per hour*;
  • Designer hourly rate = $55 per hour;
  • The monthly amount of payable hours of a Scrum Master is 15% of hours logged by developers & designers in the month;
  • The monthly amount of payable hours of a QA Engineer is 15% of hours logged by developers in the month;
  • iOS and Android developer hourly rate = $55 per hour*

* The hourly rates varies based on platform and country. According to the list of top mobile app development companies by Clutch.co, the hourly rates may range from less than $25, up to 300$ or more per hour.

For example, there are 2508 companies with an hourly rate lower than $25, where 1900 of them are from India. There are 20 companies with rates higher than $300 per hour, and they are mostly from the US and UK.

In this article, we use our hourly rates which are within the range of development companies from Central and Eastern Europe region: $40-$70.

How many hours do developers need for each key feature?

Let’s examine each module (feature) and try to estimate it. This estimation is based on our experience with a very similar project:

  • flight booking – the most complicated feature with many screens and complex logic. This flow can be the first version of the app and the rest of the features we can develop later. This can take around 1,000 hours to be done.
  • manage reservations – this module is much simpler than the previous one and contains some shareable elements with flight booking flows. Thanks to this, it will take about 400 hours.
  • check-in – its flow is quite simple and straightforward but needs integration with some of the system services, like mobile wallets or notifications. This may take about 240 hours.
  • loyalty program – this feature contains a lot of elements but most of them are rather simple. To create this we will need about 450 hours.
  • flight status & watch – the simplest element of the app, but it contains notifications integration, which may generate additional work. Still, we need about 150 hours.
  • after-flight reservations – based mainly on integration with other services with some potentially fancy features. We can assume that it can take about 200 hours.

However, it is just the development time. Before developers start their work, we need a designer who will be responsible for the Product Design of your mobile app. Based on our experience, we estimate that a designer would need about 400 hours to design an application with such features as above.

Summing up, to build a complex airline app we will need around 2,440 hours of developers’ work for one platform, and around 200 hours of a designer’s work per platform.

How many months are needed to deliver a complex airline app?

2,440 hours / (35 hours per week x 4 developers) = 4.5 months

You can develop an airline app for 2 platforms at the same time.

What is more, we add 1 month for creating wireframes and visual design which is necessary before developers start their work.  The designer will carry out his work during your iOS app development and Android app development.

So, 4.5 months + 1 month = 5.5 months – this is the approximate time needed to create your complex airline app for iOS and Android, assuming that you hire 4 developers per platform.

How much does an airline app cost?

How much does an airline app cost?

However, please notice:

  • This is a rough estimation of building a complex mobile app for airlines! If you would decide to start with an application that has only 2 basic key features like e.g. flight booking and managing reservations, the first version of your app would be ready much faster and with a smaller budget.
  • The time needed to deliver your product can change during development because of bug fixes, code improvements, and other similar tasks that are not easily predictable.

After a successful release, probably you will want to improve your product. This is the last step of the mobile app development process – the maintenance. In this stage, developers improve the existing app and add new features. In our case, it can be for example an additional catalog of benefits in a loyalty program or even a whole rebrand.

How to make an airline app like Ryanair: challenges & recommendations

The above calculations are still based on estimations and might change due to some of the unexpected reasons. That’s why it is important to consider in the mobile app development process as many threats as possible. Just to name a few:

Backend providers

Airline companies are quite old but they have tried to adapt the newest technology as fast as possible. When the internet became popular, they wanted to integrate their system with it. Unfortunately, because of this, many different systems appeared with different points of use. Many of them are not fully integrated between others and are built with legacy systems. That makes it difficult to use them in a well-working mobile app.

TIP: It is a good idea to write some proofs of concept examples to check API functionality and to be in touch with the provider to quickly solve any misunderstandings.

Time zones

Flying by airplane is heavily based on the dates and they are difficult from the site of development. They can be in different formats and time zones. Users can also be in different time zones. This is the source of many unexpected and hard-to-find bugs.

TIP: That’s why it is important to use well-tested dates library or write it on your own at the start of development with multiple edge-case tests

3rd party payment

As mentioned earlier, the app may contain different payment methods, which implicate different payment services. This generates a similar problem as backend providers because it is hard to integrate many of them in the app.

TIP: Fortunately, many payment service providers have their own libraries for different platforms. So it is worth to check it before the development starts

Creating a mobile travel app for airlines – wrap up

I hope my article was helpful and creating a mobile airline app like Ryanair became clearer to you.

As you could see, creating a mobile application for airlines is a complex & sophisticated process. You may face numerous challenges, and unpredictable bumps in the development road.

At the same time, the stakes are very high.

You fight for increasing your customers’ loyalty, improving user experience, building your competitiveness on the market, and much more.

Thus, it’s worth ensuring your airline app development to a reliable mobile app development company that has well-established experience & knowledge in this area. At Droids On Roids, we have developed a big-league airline application, which can’t be in our portfolio due to NDA restrictions. However, we would love to share with you our experience over the call if you find it helpful.

Good luck!

The post How to Make an Airline App like Ryanair in 2020 | Process & Cost appeared first on Droids On Roids.

]]>
https://www.thedroidsonroids.com/blog/how-to-make-a-travel-airline-app-like-ryanair-in-2020/feed 0
What is the Difference Between ListView and RecyclerView? https://www.thedroidsonroids.com/blog/difference-between-listview-recyclerview https://www.thedroidsonroids.com/blog/difference-between-listview-recyclerview#disqus_thread Tue, 14 Apr 2020 09:00:44 +0000 https://www.thedroidsonroids.com/?p=8088 As Android Developers, we can implement Scrolling List using a ListView or a RecyclerView. Let's compare these two ways! 

The post What is the Difference Between ListView and RecyclerView? appeared first on Droids On Roids.

]]>
ListView and RecyclerView – a short history

As Android Developers, we can implement a scrolling list in a couple of ways, which mostly depends on what we need to do. The most popular methods are to use a ListView or a Recycler View.

ListView is a good old widget that has been included in the Android SDK since API 1. Until Android Lollipop’s release, we mostly used this one and it wasn’t that bad – the API is mostly intuitive. Unfortunately, it allows us to create just the vertical-scrolling list of elements and, to make that list scrolling go smoothly, we have to remember to do it properly.

Moreover, the ListView class is a bit too heavy – it has a lot of responsibilities. Whenever we have to handle the list, such as to configure it in some way, the only way to do this is through the ListView object or inside the adapter.

Nowadays we use the RecyclerView. As I’ve mentioned, it was introduced with the Android Lollipop and it proved to be a game-changer. A lot of things that we hate in the ListView were fixed or changed in the RecyclerView. It’s more efficient by default, the layout is separated and we have more possibilities over the data set inside the adapter.

If you want to know more about ListView and RecyclerView, you can take a look at my articles which show how to implement a ListView and how to implement a RecyclerView. They both are helpful if you are a beginner and aim to provide Android app development services at the highest level.

At Droids On Roids we use RecyclerView in many projects in all areas, e.g. in IoT app development, finance app development, or mobile commerce app development. We used it, for example, in our of our biggest projects – development of CCC – the mobile commerce app for the largest footwear retail company in Central Europe.

Now, let’s go deeper into the differences between ListView and RecyclerView.

ListView vs RecyclerView – crucial differences

1. ViewHolder

The ViewHolder pattern allows us to make our list scrolling act smoothly. It stores list row views references and, thanks to this, calling the findViewById() method only occurs a couple of times, rather than for the entire dataset and on each bind view.

The RecyclerView’s adapter forces us to use the ViewHolder pattern. The creating part (inflating the layout and finding views) and updating the views are split into two methods — onCreateViewHolder() and onBindViewHolder().

The ListView, on the other hand, doesn’t give us that kind of protection by default, so without implementing the ViewHolder pattern inside the getView() method, we’ll end with inefficient scrolling in our list.

2. LayoutManager

The LayoutManager takes responsibility for layouting row views. Thanks to this, RecyclerView doesn’t have to think about how to position the row view. This class allows us to choose the way that we want to show the row views and how to scroll the list. For example, if we want to scroll our list vertically or horizontally, we can choose LinearLayoutManager. For grids, it is more suitable to choose GridLayoutManager.

Previously, with the use of the ListView, we were only able to create a vertical-scrolling list, so it wasn’t that flexible. If we wanted grids on our list, we had to choose the other widget for that — GridView.

3. ItemDecoration

Duty of the ItemDecoration is simple in theory – add some decorations for the list row views – but in practice, it’s that simple to implement if we want to create a custom one. In this case, we should extend the ItemDecoration class and implement our solution. For example, the RecyclerView list has no dividers between rows by default and it’s consistent with the Material Design guidelines. However, if we want to add a divider for some reason, we can use DividerItemDecoration and add it to the RecyclerView.

In case we use the ListView, we have to figure out rows decorations by ourselves. There is no helper class like ItemDecoration for this widget.

4. ItemAnimator

The last but not least component of RecyclerView that I want to mention is ItemAnimator. As we can expect, it’s handling row views animations like list appearance and disappearance, adding or removing particular views and so on.

By default, RecyclerView’s list animations are nice and smooth. Of course, we can change that by creating our own ItemAnimator, which is also not that easy. To make it easier, we should extend the SimpleItemAnimator class and implement the methods that we need (just add animations to a ViewHolder’s views).

To be honest, implementing animations on the ListView was a pain in the ass. Again, we had to figure out how we want to handle them. Nothing nice. I’m glad it’s gone.

5. Notifying adapter

We have a couple of cool notifiers on the RecyclerView’s adapter. We are still able to use notifyDataSetChanged() but there are also ones for particular list elements, like notifyItemInserted()notifyItemRemoved() or even notifyItemChanged() and more. We should use the most appropriate ones for what is happening, so the proper animations will fire correctly.

Using ListView, we were able to use just notifyDataSetChanged() on the adapter and then had to handle the rest ourselves, again.

Two useful tips about RecyclerView

Since we already use the RecyclerView, it would be good to make our working with this tool more easy and enjoyable. Here is a couple of helpful features.

1. DiffUtil.Callback

The callback helps us to skip manual handling of notifying an adapter. Instead of using different methods for each type of notifications as notifyItemInserted(), notifyItemRemoved() or notifyItemChanged() we just can use this simple method:

But even this approach is not the end. 🙂

2. ListAdapter

ListAdapter is a casing on a RecyclerView. Adapter with the full power of DiffUtil. Thanks to ListAdapter we don’t need:

    1. keeping field with the list of items
    2. handling items animations
    3. writing methods for rendering new items
    4. caring for the size of items list

How does it look like? We need to define three things: two methods onCreateViewHolder, onBindViewHolder and DiffUtil.ItemCallback (the simplest version of DiffUtil.Callback).

Sample Code:

For a rendering of new items, it’s enough to use adapter.submitList(newItems) method of ListAdapter.

Working with RecyclerView has never been so simple and enjoyable.

ListView vs RecyclerView – wrap up

The ListView served us for a long time. We were able to cover most of the cases. But the user’s needs are different now and they are much more challenging. List designs became more and more complex and the ListView wasn’t helping with handling them. Material Design brought other changes, too – it’s beautiful but complex.

Fortunately, the RecyclerView was introduced and a lot of problems were solved. It’s more efficient by default, its animations are simpler, layouting it’s easier to use and the API is much nicer. So, if you ever wonder which one you should choose, your first thought should be the RecyclerView. I hope this article helped you to understand what is the difference between ListView and RecyclerView.

The post What is the Difference Between ListView and RecyclerView? appeared first on Droids On Roids.

]]>
https://www.thedroidsonroids.com/blog/difference-between-listview-recyclerview/feed 1
How to Learn Android Development Programming – 6 Steps for Beginners https://www.thedroidsonroids.com/blog/how-to-learn-android-development-programming https://www.thedroidsonroids.com/blog/how-to-learn-android-development-programming#disqus_thread Fri, 10 Apr 2020 10:00:11 +0000 http://www.thedroidsonroids.com/?p=555 Do you want to learn Android mobile app development? If yes, but you don’t know-how, this post is for you. It will help you to start your adventure as an Android developer.  First of all, you should buy the most expensive smartphone you will find for at least 1000$… Naaaaaah. I’m just kidding! All you […]

The post How to Learn Android Development Programming – 6 Steps for Beginners appeared first on Droids On Roids.

]]>
Do you want to learn Android mobile app development? If yes, but you don’t know-how, this post is for you. It will help you to start your adventure as an Android developer. 

First of all, you should buy the most expensive smartphone you will find for at least 1000$… Naaaaaah. I’m just kidding! All you need for now is willingness.

If you are Android and Java beginner, click here.
If you already know basics, click here.

It doesn’t matter if you are a beginner or an advanced developer, from time to time you should read the content mentioned below from cover to cover. Moreover, if you like to be up to date with the newest things on the market, I recommend you also to check on the latest trends in Android app development for 2020.

Ready? 3, 2, 1… Go!

How to learn Android development – 6 key steps for beginners

1. Take a look at the official Android website

Google Developers Website
Visit the official Android Developer website. To be honest, it is really important to read the whole website to understand the ecosystem and a variety of solutions, ideas, and technologies linked with Android. You won’t understand and remember everything, but you will know where to look for in the future.

2. Check out Kotlin

Kotlin in Android app development

Google officially supports Kotlin on Android as a “first-class” language since May 2017. Fewer companies are developing commercial applications using only Java, so studying Kotlin is a necessary step to become a successful Android Developer.

Kotlin

On the official Kotlin website, you can find documentation for Android development and try the language online. It’s an important step on your way to becoming an Android developer.

3. Get to know Material Design

google material design website

Material Design. The most beautiful Google’s child.

The same rule as above – scan the whole site to understand how it’s built and what’s the idea behind it. Try to feel it. Be the material. Think like material. Behave like material. You shouldn’t miss this point while getting started with Android.

4. Download Android Studio IDE

Android Studio

Download  Android Studio (not Eclipse).

It’s unquestionably the best IDE for Android and it’s from Google.

If it is a new IDE for you – don’t be afraid. I also started from Eclipse, ‘cause I know it already. One day I installed Android Studio and from that day, I will never install Eclipse again for Android purposes. You know, it’s like in a relationship. Eclipse is your first. You love her but you go to Stanford and she goes to Yale. It’s a hard decision to break up but you are so young. You have to think about your future. Bla, blah, blah. You know what I mean. Just download Android Studio, install it, learn how to use it for your glory!

5. Write some code

Documentation for app developers

It’s time to look a bit at the code and write something. Practice together with a theory is one of the best ways of learning.

Go back to the official Android website and this time go to Develop. There are two of the most important sections:

  • Training courses and Codelabs – you can find there a lot of helpful examples. Go through all these lessons before you start programming for real.
  • API Reference – I know it will be hard to go through all these texts, descriptions, examples and so on but it’s worth it. Trust me. This section is very important.

6. Stay up to date

Android Developer Journey

“My lord. I read all this stuff that you had written about. What I should do next?”.

“Do not stop”.

“What does it mean, my lord?”.

“Tell me, are you happy?”.

“Yes, my lord”.

“And what made you happy?”.

“All these sources that you gave me, my lord. I am a better person now”.

“Do not stop means then – find other ways to be happy”.

“Thank you, my lord. I will”.

I recommend you to check on Android development trends for 2020 which I have mentioned in the introduction.

Getting started with Android development – useful resources

Our journey comes to an end. We showed you a few crucial steps that will help you to learn Android app development. Now, we would like to give you a couple more valuable links:

  • Kotlin Weekly – if you want to improve your Kotlin skills, this digest can be very helpful for you.
  • Fragmented Podcast – Android podcast hosted by Donn Felker and Kaushik Gopal where they are talking about becoming a better Android developer with a lot of very interesting people from the Android world.

Don’t stop!

So that’s it. But remember – it’s just a beginning! I hope that this article will make your getting started with Android app development easier. Good luck!

The post How to Learn Android Development Programming – 6 Steps for Beginners appeared first on Droids On Roids.

]]>
https://www.thedroidsonroids.com/blog/how-to-learn-android-development-programming/feed 5
Top 7 Mobile App Design Trends for 2020 | App Owner’s Guide with Examples https://www.thedroidsonroids.com/blog/mobile-app-design-trends-for-2020 https://www.thedroidsonroids.com/blog/mobile-app-design-trends-for-2020#disqus_thread Thu, 09 Apr 2020 10:18:40 +0000 https://www.thedroidsonroids.com/?p=24319 Discover the latest Mobile App Design Trends for 2020. A must-read guide for App Owners with examples.

The post Top 7 Mobile App Design Trends for 2020 | App Owner’s Guide with Examples appeared first on Droids On Roids.

]]>
What are the key mobile app design trends to follow in 2020? Well, the final look of any mobile app depends on multiple aspects, like technology, trendsetters in particular industries, project criteria, business requirements, user needs, and more. That means that predicting what will be popular generally, in every sector, is not so easy, because each business has its own rules.

I will give you an example. I worked on a project where the client was very inspired by the Uber application. While analyzing their competitors, I studied several dozens of similar apps in various fields of transport: public transport, taxis, cargo transport, etc. Then, I saw a significant change in Uber’s search engine component.

Do you know what happened next?

The other applications have copied this solution. Trends may vary, depending on the industry. It is worth following large companies because they often dictate how the specific features will look.

This article will take an overview of the leading mobile app development trends for 2020 and describes how they shape mobile app design best practices. I’ll also present 7 main design trends noticed by the largest researching companies in this subject, such as NN Norman Group, Deloitte, PwC, and even my own observations.

Maybe this information will help your application to become a trendsetter in your industry? I hope so!

What will you learn from this article?

Skip to a section:

Mobile market potential – a quick overview

Before we go to describing the latest mobile app design trends that will skyrocket in 2020,  let’s take a look at the mobile application market and its potential.

The mobile phone market is continuously growing every year. Over 1.56 billion (sic!) smartphones are sold annually.1 Each of these smartphone owners is your potential user. In 2019 alone, users downloaded 204 billion applications, which gave app owners a total, combined revenue of $461.7 billion.2

According to Statistica, revenues from mobile apps will increase significantly in 2020 by itself, compared to the previous year, will be higher by more than $120 billion. That means almost 25% growth compared to 2019.

What do those numbers mean to you and your users?

The average American checks his smartphone every 12 minutes. 10% of people check their phones every four minutes. People use smartphones at work, at home, on the street, when they eat, in bed, and even while driving their car. It’s highly likely that you are reading this article on your phone now.3

What are they all doing on their phones? That probably doesn’t surprise you: they’ve spent 90% of the mobile time using applications. This means there’s a great opportunity to arrive on the mobile app market.

If you want to learn more about mobile app basics, check on mobile app development guide for businesses.

What will happen in 2020?

The first quarter of 2020 closed with substantial perturbations of markets around the world. Global quarantine and the epidemiological situation affect almost all branches of business across the globe. But not for everyone. One of the several bucking this trend, next to computer entertainments or video streaming platforms, are mobile apps. Studying statistics in March this year, you can notice increases in the use of the most popular applications range from 100% to even 800%.

Of course, the current Coronavirus crisis isn’t beneficial. The situation, which touches us all over the world, is worrying and incomparable to anything else. History shows that every crisis also gives new opportunities and creates original services that can adjust your business to this new reality. Let’s take a brief look at 2008.

How previous crises become a game-changer for refreshed services

The financial crisis in 2008 hit the world economy seriously and caused many obstacles that we can still feel today. But any large market fluctuations and drops in individual sectors provide an excellent opportunity for developing new services. More flexible and faster companies can take advantage of this opportunity. One example is Airbnb, which revolutionized short-term rental by adapting to the property crash market in 2008, and today it is valued at about $38 billion.4

Another example is Uber. The company, best recognized for improving the taxi transport market, valued at about $50 – $100 billion, was also founded in recession time.5

Those startups dominated a massive part of the markets because they provide unique values. Simple and intuitive UX/UI of their services, a recognizable Product Design, and refreshed industry business models are several of them. They are just very careful, bright, and flexible in how they adapt their services to the new market realities. By providing a much higher level of the positive experience the services, using currently available technology, they gained a competitive advantage.

In summary, if you are thinking about developing your mobile app, the current market situation could be an excellent opportunity. The popularity of mobile apps is continuously rising, and there is no indication that this increase will slow down, as I showed in the beginning.

If I got your attention, then let’s get to the main part of this article. Today I will present to you some crucial fields that are worth paying attention to while developing your mobile application in 2020.

User Experience, User Interface, and Product Design – what do they mean?

To understand well the top design trends in mobile app development for 2020, we need to take a quick look at a few definitions. I’d like to be sure that we are on the same page. In the introduction, I have used phrases like UI (User Interface), UX (User Experience), and Product Design for mobile app – but what do they mean?

There is no one precise definition of those terms, like Einstein’s Mass–energy equivalence. Companies and designers understand them in different ways, so the best I can do is to illustrate my meaning.

Top mobile app design trends for 2020

Sources: Dribbble, Muzli

A well-designed product is a synonym of compromise between business goals, technology, user goals, strategy, and design. It also often includes designing the entire product, including branding, design, usability, and features, as well as all the experiences and emotions triggered during the use of the product.

All these components combined give a product a chance to be successful. Products that simply look right, without research or experience design, would not be enough to succeed. Also, something well-designed information architecture and functions, but not quite good looking, could also have a problem with success.

If you want, here you can learn more about designing UX & UI for a mobile application from a business perspective.


Below you can find the top 7 mobile app development trends that are shaping the mobile app design trends in 2020.

1. The increasing importance of Experiences

The competition in the mobile application market is growing rapidly. Every day, hundreds of new digital products appear in the Google and Apple stores. Additionally, it’s a recognized trend that users of mobile applications are much more loyal to the brand than users of other devices, e.g., desktop. Therefore, if your app does not meet the user’s expectations, then there is a chance that he or she will use another one that does – and then they won’t come back.

App owners need to find new ways to make the users co-creators of their experiences. Those who do this will find more active, committed and loyal users.

McDonald’s story

I will give you the example of McDonald’s. The process of solving the problem of quick ordering has been going on for many years. If you are the occasional customer of McDonald’s, for sure, you’ve noticed the changes in the order process. Years ago, it was possible to make a face to face order only, but a customer didn’t know how long they needed to wait. Later, bills were assigned numbers and the customer could check on the monitor’s estimated time of order preparation. Next, self-order kiosks were created and the customer could place an order using the application.

Today, we can order a burger using the mobile application, practically reducing the ordering and waiting time to a minimum.

In the US market, several McDonald’s restaurants have taken this a step further. They are testing personalized solutions, offering personalized menus and recommendations based on weather, time of day, menu trends and past customer purchases. The application adapts today’s menu to your past purchases to shopping according to the season, weather or even restaurant traffic.

Also, the McDonalds workers can use the data without requiring programmatic skills. Just adjust the menu based on observations. They can use data to determine rush hour and change the menu recommendations to promote the most suitable products, reducing the burden on staff and restaurants. All of those features positively increase the experience of both employees and customers. (source: We the post-digital people. Can your enterprise survive the tech-clash?, TECHNOLOGY VISION 2020 report, Accenture 2020, p.25)

Tinder story

Tinder released the unique feature called “Swipe Night,” an adventure series which required participation and decision-making within the application. Each five-minute episode was broadcast at 18:00 local time on Sunday evening and was only available for six hours. Based on the choices made, users could join in pairs.

The experiences in both examples, are very personalized and unique. The trend can be observed on many levels, but it will appear more and more often. (source: We the post digital people. Can your enterprise survive the tech-clash?, TECHNOLOGY VISION 2020 report, Accenture 2020, s.27)

✔ The increasing importance of experiences – what does it mean for mobile app design in 2020?

When planning your iOS app development or Android app development, you need to think about the unique values & experiences that this product can give its users. Otherwise, it may not be enough to stand out from other applications and maintain user engagement.

2. Reasonable Personalization

Personalization becomes a key feature of enterprises in various sectors. 90% of companies believe that providing highly personalized services is the highest strategic priority. In the retail industry alone, 96% of consumer electronics directors, 97% of the Health and Beauty executives, and 92% of the tourism industry executives declare a strong emphasis on personalization. (source: Millennials: Fueling the Experience Economy. (n.d.). Eventbrite)

Tesla

An example of a great personalization is Tesla. After creating a driver profile, the vehicle adjusts certain parameters like a seat, driver’s side-view mirror, and steering wheel positioning, as well as unit formats or steering and regenerative braking modes. Elon Musk says that now “any Tesla you drive in the world automatically adjusts to you”. That’s also a car preparation strategy for a growing car-sharing trend. (source)

Spotify

Top mobile app design trends for 2020

In a survey conducted by Adobe, 67% of consumers said it is important for companies to adjust content automatically based on the current context of the person. What’s more, 42% said they were annoyed by their non-personalized content. 6 Spotify is doing it right.

Spotify is preparing personalized lists like Discover weekly, Top Songs of 2018, Top Songs of 2019, or the global most listened songs ever. Even the user’s awareness of collecting the data by Spotify is very well received. The application allows for discovering new bands based on the songs you listen to.

I showed an example of Tesla at the beginning of this section. You know what? A user’s Spotify Profile is associated with its Tesla Driver Profile. Personalization progresses very strongly in almost every industry. This trend will grow or even become a necessity.

✔ What does personalization mean for mobile app design in 2020?

Content in the application should be tailored to the user. If you are creating a recipe application, do not add the same recipes for everyone. Perhaps someone chooses Mexican cuisine more often and is not interested in Mediterranean cuisine?

The more the user has the content matched to their tastes, the more they will appreciate your product and associate your brand with their lifestyle, at least when it comes to how they use their mobile.

3. Cognitive technologies and Artificial Intelligence

You can affect the experience of your app using intelligent technologies, like Artificial Intelligence (AI), machine learning, natural language processing, visual recognition, and others.

Companies like Google, Amazon, Apple or IBM work hard to develop better quality solutions based on NLP (natural language processing) by machines. Systems like Google BERT and IBM Watson have enabled AI systems to move from understanding only one word to understanding phrases in context.

Semantic understanding improves the machine’s ability to understand human intentions, allowing it to better communicate results without having to steer them continually. (source: We the post-digital people. Can your enterprise survive the tech-clash?, TECHNOLOGY VISION 2020 report, Accenture 2020, s.49)

Let’s take a look at some examples of use in mobile applications.

ELSA Speak

Top mobile app design trends for 2020

The ELSA app helps to improve the language accent. For example, being an American, you can learn Spanish and train your accent using AI. The application presents how the accent should sound and analyzes the intonation of given words or whole sentences. The main feature is based on NLP technology.

Adobe Sensei

Source

Adobe Sensei uses artificial intelligence and machine learning to help facilitate the work of both designers and automate processes in applications, such as smart video/image cropping, automatically deleting items and retouching videos, etc.

✔ What does Cognitive Technologies and AI mean for mobile app design in 2020?

It means great opportunities to develop better experiences and automation. These technologies personalize and contextualize human-technology interaction, enabling apps to provide customized services with minimal or any human involvement.

Imagine that you create mobile commerce, furniture, and decorations. You need to create interior inspirations. You can implement them manually by buying such projects from a graphic designer. Alternatively, you can use AI to do this to automatically remove backgrounds, adjust contrast and saturation, measure white balance and create beautiful mood boards.

Automation, personalization, and increased experience based on intelligent technologies are already happening, and this aspect will only grow in 2020 and next year.

4. Voice Technology

Commercial applications of digital reality are continually growing. New technologies, which go beyond the confines of keyboards and screens, create new experiences for using apps. Voice control is a trend that has been appearing for several years in the listings of various companies. (source: Deloitte Tech Trends 2020, s.11)

There are many popular voice control technologies on the market, such as Siri, Amazon Echo or Google Assistant.

There’s a reason this technology is one of the top mobile apps design trends for 2020, as they extend the possibility of using the application in other situations than before. This includes cooking, driving the car, ironing, exercising and other activities when our hands are taken. By voice technology, we can still control the interfaces by not using the fingers and keyboards, but by using voice recognition.

Governmental or large-scale commercial projects use this voice functionality to give the same conditions of use for every user – for example, those affected by various dysfunctions.

Cortana

Top mobile app design trends for 2020

This virtual assistant, created by Microsoft, helps users keep up to date with the most important matters, as well as complete all their tasks. Using voice is a very simple way you can schedule an appointment, go through a briefing, writing an email, check the weather, and more.

Google Maps

Google Maps allows for free-hand control of the app. It gives opportunities to use voice commands while on the road to help ensure a safe drive. We can ask of “What’s my next turn?”, “Gas stations nearby,” “How’s traffic to home?”, etc.7)

Today apps have used the technologies from small components like voice searches to whole apps like language accent trainers.

✔ What does Voice Technology mean for mobile app design in 2020?

As one of the latest Product Design trends in mobile app development, if voice applications and the sale of intelligent speakers, i.e., echo or Alexa, will continue, it means that users will expect such solutions in the coming years.

Currently, 111.8 million people in the US are using voice search features. That’s almost 40% of all internet users in the US. Research expects about a 9.7% increase in 2020.8 Also, looking at a PricewaterhouseCoopers report from 2018, 71% of Americans prefer to search using voice than to type.9

All of this will have a huge impact on the interfaces of mobile applications.

5. AR – Augmented Reality

3D simulations and human-computer interfaces, such as augmented reality and virtual reality, represent one of the other current Product Design trends in mobile app development that have been growing steadily for several years. Virtual measures or spirit levels are a basic iOS system functionality today.

AR allows you to impose additional functionalities from the virtual world on reality. IKEA uses this technology to create visualizations of apartments. Google Maps, likewise, uses it for navigating and searching places.

The development of this technology will result in more 3D models in graphic interfaces, as well as increasing the use of phone cameras to apply virtual layers to reality.

IKEA

In 2018, IKEA Place became the second-most-popular free mobile AR app on the Apple Store. Even gaming apps were less popular than IKEA Place. The app solves the problem of fitting furniture to customers’ interiors. Just turn on the camera, choose a product from the store and then simply put it in the desired place.10

Google Maps

In 2019, Google launched a beta version of navigation based on augmented reality. The main idea was to create a live view function of the nearest places – not when driving a car or walking, but to better navigate in terms of terrain orientation.

Being in a foreign city and looking for a restaurant or street, users can easily find the right direction.

✔ What does AR/VR mean for mobile app design in 2020?

First of all, it involves expanding the graphic interface with a new space that can become a room or street. In VR, the functionalities go beyond the smartphone screen and can be located anywhere we want. Using map coordinates, i.e., Google Maps, we can set a marker on the map, kilometers from the place where we are. Using IKEA, the component in the form of a chair can be in another room.

AR offers great potential for providing an even more unique experience for mobile applications, which is why it’s one of the top design trends in mobile app development for 2020. It opens up new channels.

6. Animations

If an animation is used carefully, then it can be helpful and communicative. Sophisticated animations that do not pay attention to the appropriate functionalities make the interface more fluid and pleasant.

In application markets, you can see projects in which the number of moving parts makes you dizzy. Animations must perform and help user expectations regarding the UI. They should primarily be used as a tool for providing users with easily noticeable, smooth functions.11

Craft

Source

Craft is not released yet but, on Dribble this year, a fragment of the animation from this tool appeared. The application uses many native iPadOS functionalities, but it’s a great example of how animations can be used in practice.

Uber

Source

Uber, from the beginning, paid great attention to the user experience of its service. In current versions of the application, the animations and movement are refined to perfection. If you are a user of their services, I encourage you to observe how smooth and helpful animations in the application are.

✔ What do animations mean for mobile app design in 2020?

Animations help to intensify the experience and trigger additional emotions, i.e., joy, happiness, liking. Facebook and emojis are a good example of this.

When designing the mobile application, it is worth considering these issues, because the final product animations will increase satisfaction and comfort of use.

7. IoT and adaptable interfaces to different devices

The Internet of Things is a network of connected devices that interact and exchange information with each other.12 As in the case of voice technologies, also here, Apple’s move in this direction implied an increase in the importance of IoT in application interfaces.

“Markets research suggests that such efforts are already underway: The digital twin market—worth US$3.8 billion in 2019—is projected to reach US$35.8 billion in value by 2025.” – says Deloitte Insights. (source: Deloitte Tech Trends 2020, s.11). “Digital twin” refers to a digital replica of physical assets, processes, and systems that can be used for various purposes.

We have developed a lot of successful projects in the field of IoT, and we would agree wholeheartedly. With the increasing popularity and more diverse use cases, this is certainly one of the top trends in digital product design for 2020.

Apple

Years ago, Apple’s Universal Clipboard functionality showed how easy and comfortable it could be using different devices via the same, connected software. Currently, with Apple products, there is a singular environment shared across every device, whether they’re smartwatches, iPhones, iPads, MacBooks or even Apple TVs.

These trends will be increasing in almost every field, giving you possibilities such as real-time communication, analysis, prediction, response, etc. If your offline product does not yet use online technology, this is the last bell to get started.

Loop

The Loop App connects to the Wi-Fi display and allows you to seamlessly share video, photos & video chat with your friends and family. The content uploaded on the Loop Display can be added by different users at the same time on different devices.

Support for multiple resolutions requires the provision of multiple variables and the customization of the user interface to provide a high level of user experience.

What does IoT mean for a mobile application?

Do you consider building an app for both Android and iOS? Good! But consider also Tablets, Desktops, or even Smart Watches.

For example, If you’re running the app for home exercises, why not use the activities data from a smartwatch?

Are you designing a recipe application? Why not use data from the fridge and present recipes based on the products you have? Similar projects already exist, but I’m trying to give you just a quick view of possibilities.

Think about the devices in our lives. Smart TVs, Smart Speakers, Light Controllers, Door Lockers, Smart Fridges, Smart Mirrors, Smart Windows, Smart Cars and much, much more – they give us high broad possibilities to create unique values of your mobile product.


Top mobile apps design trends for 2020 – Takeaways

  • Mobile applications will continue to grow in popularity.
  • Focus on the real needs of users and provide them with the solutions they expect.
  • Do not suggest what looks nice on rankings, but what looks and works physically in app stores.
  • Think twice before implementing complicated functionality. Maybe it can be done more simply.
  • Pay close attention to the user experience. Think about what emotions accompany you when using the application and ask your friends about the same.
  • Treat your users as if they were your friends. Greater personalization means more significant commitment and attachment, just like in friendship.
  • Consider whether artificial intelligence can help your application understand users or provide them with a unique experience.
  • Artificial intelligence can take your application to a completely different level of user experience by providing unique functionalities in real-time.
  • AR can provide unique values to your users or employees. It may be worth a try.
  • Animations and movies are the future. The smoother the interface works, the better.
  • The combination of many devices in one environment gives indescribable quality in the usability of the software.

We hope that our list of the latest mobile app design trends in 2020 will help you to create a top-notch mobile product that your users will love! If you are still not sure how to start, book a 3 day Product Design Workshop with our design experts who will help you to clarify your vision. As a Product Owner, you should also check out why it is worth to design and develop your app at the same software house.

Good luck!

The post Top 7 Mobile App Design Trends for 2020 | App Owner’s Guide with Examples appeared first on Droids On Roids.

]]>
https://www.thedroidsonroids.com/blog/mobile-app-design-trends-for-2020/feed 0
Bluetooth Classic vs. Bluetooth Low Energy (BLE) on Android – Hints & Implementation Steps https://www.thedroidsonroids.com/blog/bluetooth-classic-vs-bluetooth-low-energy-ble https://www.thedroidsonroids.com/blog/bluetooth-classic-vs-bluetooth-low-energy-ble#disqus_thread Tue, 07 Apr 2020 08:00:31 +0000 https://www.thedroidsonroids.com/?p=6714 Do you want to create a connection between wearable devices and smartphones? Find out the possibilities of Bluetooth Classic & Bluetooth Low Energy (BLE) on Android.

The post Bluetooth Classic vs. Bluetooth Low Energy (BLE) on Android – Hints & Implementation Steps appeared first on Droids On Roids.

]]>
Do you want to create a connection between wearable devices and smartphones? Find out the possibilities of Bluetooth Classic & Bluetooth Low Energy (BLE) on Android and learn more about the basic steps of the implementation process:

  • requesting permissions and features,
  • getting BluetoothDevice object,
  • and connecting to a Bluetooth device (GATT & RFCOMM).

Before we go deeper into Bluetooth Classic vs Bluetooth Low Energy (BLE), I want to stress that Bluetooth is widely used nowadays and it’s worth knowing how to implement it to your project.

As an experienced IoT app development company, we use BLE in many projects for our clients. Just to name a few, we used it in:

  • Loop app – the app connects to the Wi-Fi display and allows users to seamlessly share video, photos & video chat.
  • OhMiBod app – the app connects remotely with OhMiBod erotic gadgets and allows users to create unlimited vibration patterns on the fly.
  • Skybuds app – the app connects with wireless earphones and charging dock via Bluetooth 4.0 (BLE & Bluetooth Classic)

Overview

In most cases, designers of wearable, peripheral devices, as well as all other items that extend our smartphone’s functionality, are facing a common issue. Most of these devices need to communicate with our smartphones somehow. The problem is which technology to choose – Bluetooth Classic or BLE? Find out which one would fit your situation the best.

Bluetooth is not an answer

Today’s customers are expecting hands-free, wireless solutions. The first thing that comes to mind is Bluetooth. Yet, is this already an answer to the question? Not exactly.

There are many different solutions hidden under this name. Since Bluetooth 4.0 was introduced, there is Bluetooth High Speed, Bluetooth Classic (BC) and Bluetooth Low Energy (BLE).

The first one is a solution that combines Bluetooth and WiFi (as the transport layer) to reach a high transfer speed, but it requires a combo chip (Bluetooth + WiFi), which is relatively expensive. The other two solutions (Bluetooth Classic and BLE) are widely used and they meet most expectations.

Bluetooth Classic vs Bluetooth Low Energy (BLE) on Android

Bluetooth Classic vs Bluetooth Low Energy (BLE) – which of these is better? It depends on our requirements. We need to compare the parameters and features of both standards.

What’s more, we should keep in mind that usually, we need to create an application that allows us to handle the communication between our smartphone and the device. So, it’s also important to know what is offered by the operating system (Android – in this case) in terms of using each solution.

Bluetooth Classic – highly effective for short distances

Bluetooth Classic is designed for continuous two-way data transfer with high Application throughput (up to 2.1 Mbps); highly effective, but only for short distances. So, it’s a perfect solution in the case of streaming audio and video, or mice and other devices that need a continuous, broadband link.

Bluetooth Low Energy – as much as 100x lower power consumption

Bluetooth Low Energy provides only 0.3 Mbps of Application throughput. The data is sent in small (20 bytes) packages, but the range can be even more than 100 meters (330 feet) and the minimum latency between unconnected state to data transfer can be counted in a handful of milliseconds, while in BT Classic it’s about 100 ms.

Yet, the main advantage of using BLE is its very low power consumption. Although the peak current of BLE (up to 15 mA) is half of the BT Classic current (up to 30 mA). But the power consumption can be even 100x lower for BLE!

So, for the 1W reference value for BT Classic, BLE offers 0.01W – 0.5 W power consumption. This means that simple BLE devices, like beacons, may function for 1–2 years with a 1,000 mAh coin cell battery.

How to use Bluetooth Classic and Bluetooth Low Energy on Android – basic steps

Thankfully, we can use both Bluetooth Classic and BLE technologies when providing Android mobile app development services.

But if there is no need to use Bluetooth Classic, it’s better to use BLE, because of its low power consumption.

The implementation of BLE is provided by Android version 4.3 (API 18) and above. So, if we have already decided which solution will be suitable for our needs, let’s start the implementation process. Here are the basic steps.

1. Requesting permissions and features

This is the first step before using Bluetooth Classic or BLE features. We need to make sure all required permissions and features are applied and enabled. What do we need?

Permissions:

    • android.permission.BLUETOOTH – basic BC and BLE features
    • android.permission.BLUETOOTH_ADMIN – advanced BC and BLE operations like enabling/disabling Bluetooth module, device discovery, creating sockets
    • android.permission.ACCESS_COARSE_LOCATION – required for BLE scanning on Android 5.0 (API 21) or higher. Note: This is dangerous permission from API 23.

So, to use all the features, our manifest file should look like this:

Features:

We need also to make sure that the smartphone or tablet has a built-in Bluetooth adapter. If we just want to make our mobile app unavailable for devices without Bluetooth, we can just add a proper manifest tag:
<uses-feature android:name="android.hardware.bluetooth"/>
But, according to the documentation on developer.android.com, it’s not required if we declare the Bluetooth permission and set the target SDK version to 5 or above.

We also need to keep in mind that using Bluetooth requires the Bluetooth adapter to be enabled. We can check its current state by BluetoothAdapter.getDefaultAdapter().isEnabled. If it is disabled, we can enable it in many different ways:

  • inform the user to enable it manually (in a drop-down menu from the status bar)
  • use an intent to show a system-provided dialog for the user:
  • enable it programmatically by BluetoothAdapter.getDefaultAdapter().enable()

This method requires the android.permission.BLUETOOTH_ADMIN permission and it’s an asynchronous call: it will return immediately. So, in this case, we still need to wait until the Bluetooth adapter enables, so we can use a broadcast receiver to catch the BluetoothAdapter.ACTION_STATE_CHANGED intent:

If we want to use BLE scanning, location services also need to be enabled, which can be done by the user in a drop-down menu from the status bar (we need to register a broadcast receiver for LocationManager.MODE_CHANGED_ACTION or LocationManager.PROVIDERS_CHANGED_ACTION). Location services can be also enabled using a system-provided dialog, using GooglePlayServices:

Note: Add a dependency to your app/build.gradle file

2. Getting BluetoothDevice object

To do some Bluetooth Classic or Bluetooth Low Energy actions on a particular Bluetooth device, we need to obtain a BluetoothDevice object. If we already know the MAC address of our Bluetooth device and we want to hardcode it in our mobile app, we can just use:

Otherwise, we need to start the discovery process. This starts scanning to find nearby devices and uses an SDP protocol to obtain advertisement data from the devices. It’s used to acknowledge the smartphone and what kind of services are provided by a Bluetooth device, such as an audio headset, keyboard, etc.

Basic discovery (Bluetooth Classic and Bluetooth Low Energy):

In this case, we need to start the discovery and register a BroadcastReceiver, which will catch BluetoothDevice.ACTION_FOUND and BluetoothDevice.ACTION_DISCOVERY_FINISHED intents. The discovery process usually involves an inquiry scan of about 12 seconds.

Dedicated BLE discovery:

If we want to find only BLE devices, it’s enough to implement BLE scanning:

3. Connecting to Bluetooth device

If we need a high-speed connection (up to 2.1 Mbps) to stream big amounts of data between the smartphone and Bluetooth device, we can use one of the BT Classic features – the RFCOMM socket. If the large bandwidth is not needed in our case and we only need to exchange small packets of data, we should just use a GATT profile.

RFCOMM:

RFCOMM is a Bluetooth protocol emulating RS-232 serial ports. It can be used to create an InputStream and OutputStream to a Bluetooth device. First, we need to obtain a Bluetooth socket. It can be secure, as the data will be encrypted then:

RFCOMM – creating the socket:

Note: The device.createInsecureRfcommSocketToServiceRecord() was officially introduced in Android 2.3.3 (Gingerbread – API 10). We can call it using reflection, but it’s not guaranteed to work.

RFCOMM – pairing:

In the case of using RFCOMM sockets, the device we want to transfer data with needs to firstly be paired with our smartphone. To check if a device is already paired, we can use:

Devices can be paired manually by the user in the Android Bluetooth Settings. We can also request pairing programmatically. The pairing request can be done by bluetoothDevice.createBond() but the user still needs to accept the pairing by tapping on a system-provided dialog.

Tip: If we want to make a hands-free solution, we can try a workaround, but it’s not recommended and not guaranteed to work. It relies on catching system intent (action BluetoothDevice.ACTION_PAIRING_REQUES), applying pairing by bluetoothDevice.setPairingConfirmation(true) and aborting the broadcast. If we set a high priority for the IntentFilter, the intent would never reach the system classes, which are handling the pairing dialog, so it will never be shown. This can throw SecurityException on Android 7.1+.

RFCOMM – data transfer

After creating a socket, we can connect to it and start reading and writing data using the input and output stream. Please keep in mind that it needs to be handled in background threads and it’s recommended to cancel the discovery process before connecting to a socket.

GATT:

The Generic Attributes (GATT) define a hierarchical data structure that is exposed to connected BLE devices. GATT allows us to read or write values on available characteristics. We can also get asynchronous notifications and indications when a characteristic value has changed.

GATT Characteristics

A GATT Characteristic is a data value transferred between client and server – for example, the current battery level. Each of them is identified by a UUID (unique identifier). There are some standard characteristics like:

GATT allows us to read or write values on available characteristics. We can also get asynchronous notifications and indications when a characteristic value has changed. We can use a maximum of 20 Byte data packets that we want to write on a characteristic. If we want to send bigger amounts of data, we need to split them. Each characteristic can offer a few basic operations:

  • read – read the current value of characteristic features
  • write – update the current value (it needs to be queued on our side) operations like enabling/disabling Bluetooth module, device discovery, creating sockets
  • notification / indication – asynchronous call – notifies about the changed value of characteristics

GATT handling is provided by native Android classes, but I recommend using dedicated libraries, like this one:

https://github.com/Polidea/RxAndroidBle

It wraps GATT functionality into RxJava and makes it much easier to use.

That’s all! It’s time to sum up shortly what has been said about Bluetooth Classic vs Bluetooth Low Energy (BLE).

Bluetooth Classic vs. BLE – wrap up

I hope that now understanding the difference between Bluetooth Classic and Bluetooth Low Energy is easier for you.

Bluetooth technology allows us to configure communication between devices in many different ways. It offers some sub-solutions that we can use, but we first need to analyze what our goals and priorities are to choose the proper one. I hope that thanks to our advice, together with the basic steps, you will create a great and useful Android app using Bluetooth.

The post Bluetooth Classic vs. Bluetooth Low Energy (BLE) on Android – Hints & Implementation Steps appeared first on Droids On Roids.

]]>
https://www.thedroidsonroids.com/blog/bluetooth-classic-vs-bluetooth-low-energy-ble/feed 1
Ensuring business continuity at Droids On Roids during the COVID-19 outbreak https://www.thedroidsonroids.com/blog/ensuring-business-continuity-at-droids-on-roids-during-the-covid-19-outbreak Fri, 03 Apr 2020 15:21:46 +0000 https://www.thedroidsonroids.com/?p=24211 In these current times, as a responsible team, we work 100% remotely, ensuring the continuity of services to our clients.

The post Ensuring business continuity at Droids On Roids during the COVID-19 outbreak appeared first on Droids On Roids.

]]>
One of the things we’re proud of as a company is that we were able to create a 100% office-based team of experts. We believe that meeting every day, working on projects from the same room and chatting with others during breaks is the best way to stay creative and have fun at work. 

But, once we heard the first news about Coronavirus (COVID-19) in Poland, we didn’t hesitate even for a moment to close our office for the upcoming weeks and send our whole team to work remotely. Our goal was to keep the Droids On Roids team safe and healthy while providing services to our clients.

It’s been three weeks since we started working entirely remote, and we wanted to inform you that all our activities remain unchanged. We have all the necessary equipment, tools and workflows to ensure the continuity of services to our clients. Despite these uncertain times, we are ready to fulfill our promise to keep the efficiency and transparency we have always been so proud of.

In these difficult times, we’re also putting our knowledge to use by helping others. We’re a partner of SafeSafe, which is a mobile application to counteract COVID-19 spreading. Also, we are a part of Tech To The Rescue – where we voluntarily help NGOs get through the COVID-19 crisis. 

As soon as it is possible and safe, we will return to work in the office. In case of any questions, don’t hesitate to contact us at hello@thedroidsonroids.com.

Stay Home, Stay Safe, Save Lives.

 

The post Ensuring business continuity at Droids On Roids during the COVID-19 outbreak appeared first on Droids On Roids.

]]>
What Is a Mobile App? | App Development Basics for Businesses https://www.thedroidsonroids.com/blog/what-is-a-mobile-app-app-development-basics-for-businesses https://www.thedroidsonroids.com/blog/what-is-a-mobile-app-app-development-basics-for-businesses#disqus_thread Thu, 02 Apr 2020 17:03:52 +0000 https://www.thedroidsonroids.com/?p=23642 What is a mobile application? What kind of benefits does it bring to businesses? Read this guide to learn about the process of building a mobile app.

The post What Is a Mobile App? | App Development Basics for Businesses appeared first on Droids On Roids.

]]>
Mobile is a growing industry that attracts businesses from every marketplace. No wonder – mobile app revenues are projected to reach almost $600 billion in 2020. The exploding popularity of smartphones and tablets has made mobile application development an increasingly popular trend among business owners all over the world.

But what exactly is a mobile app? What kind of benefits does it bring to businesses? And what does the process of building a mobile application look like?

We prepared a guide that answers all of these questions and more! Read on to learn everything you need to know about mobile apps and their development.

All this knowledge comes from our 9 years of experience which we have gained as an Android app development company and iOS app development company.

1. What is a mobile application?

A mobile application (also called a mobile app) is a type of application designed to run on a mobile device, which can be a smartphone or tablet computer. Even if apps are usually small software units with limited function, they still manage to provide users with quality services and experiences.

Contrary to applications designed for desktop computers, mobile applications move away from integrated software systems. Instead, each mobile app provides an isolated and limited functionality. For example, it can be a game, a calculator, or a mobile web browser.

Because of the limited hardware resources of the early mobile devices, mobile apps avoided multi-functionality. However, even if the devices used today are far more sophisticated, mobile apps remain narrowly functional. This is how mobile app owners allow consumers to handpick exactly the functions their devices should have.

2. Key mobile app development technologies

To help you understand the process of building a mobile application here’s a closer look at all the different technology considerations business owners must make before building an app.

Native apps

What are native apps? Such apps are built for a single mobile operating system. That’s why they’re called native – they’re native to a particular platform or device. The majority of mobile apps today are built for systems like Android or iOS. To put it simply, you can’t install and use an Android app on iPhone, and vice versa.

The main benefit of native apps is their high performance and excellent user experience. After all, developers who build them use native device UI. Access to a broad range of APIs also helps to accelerate the development work and extend the boundaries of app usage. Native applications can only be downloaded from app stores and installed directly into devices. That’s why they first need to pass a strict publishing process.

The most important drawback of native apps is their cost. To build, support, and maintain an app for Android and iOS you basically need two development teams. As you can imagine, this may result in a higher price tag on the project.

Web apps

Web apps are software applications that behave similarly to native mobile apps and work on mobile devices. However, there are significant differences between native apps and web apps. For starters, web apps use browsers to run, and they’re usually written in CSS, HTML5, or JavaScript. Such apps redirect the user to the URL and then offer them the option to install the app. They simply create a bookmark on their page. That’s why they require minimum device memory.

Since all of the personal databases will be saved on the server, users can only use the application if they have an internet connection. This is the main drawback of web apps – they always require a good internet connection. Otherwise, you risk delivering subpar user experience.

Moreover, developers don’t have that many APIs works with, except for the most popular features like geolocation. The performance will be linked to browser work and network connection as well.

Hybrid apps

These apps are built using web technologies such as JavaScript, CSS, and HTML 5. Why are they called hybrid? Hybrid apps basically work like web apps disguised in a native wrapper.

Hybrid apps are easy and fast to develop, which is a clear benefit. You also get a single codebase for all the platforms. This lowers the cost of maintenance and streamlines the updating process. Developers can also take advantage of many APIs for features such as gyroscope or geolocation.

On the other hand, hybrid applications may lack speed and performance. Also, you might experience some design issues as the app might not look the same on two or more platforms.

3. Types of mobile applications

Mobile applications come in many shapes and sizes. Here are the most popular types of mobile apps to help you understand the current trends in the mobile landscape.

  • Gaming apps – this is the most popular category of mobile apps. You’d be surprised to learn how many users install games on their phones. Businesses invest an increasing amount of time and resources into creating games and mobile versions of well-known stationary games because it’s such a profitable market. According to a recent study, mobile games account for 33% of all app downloads, 74% of consumer spendings, and 10% of all the time spent using apps. The most successful mobile games like Candy Crush Saga or Angry Birds become known all over the world.
  • Business or productivity apps – these apps hold a large chunk of the market today because people are increasingly prone to using their smartphones and tablets to perform many complex tasks on the go. For example, apps can help them to book tickets, send emails, or track their work progress. Business apps are geared at boosting productivity and minimizing expenses as they allow users to complete a wide range of tasks, from buying new cartridges for office printers to recruiting a new office manager.
  • Educational apps – this category includes mobile apps that help users gain new skills and knowledge. For example, language learning apps like Duolingo have become incredibly popular because they give users the flexibility they look for in learning. Educational game apps are an excellent tool for kids. Many educational apps turn out to be popular among teachers too, who use them to organize their teaching process better or educate themselves further.
  • Lifestyle apps – this broad category of apps spans shopping, fashion, virtual fitting rooms, workout, dating, and diet apps. These apps basically focus on various aspects of personal lifestyle.
  • M-commerce apps – the most popular shopping apps like Amazon or eBay offer the experience of their desktop versions to mobile users. Mobile commerce applications provide customers with convenient access to products and seamless payment methods for an optimal shopping experience. Learn more about mobile commerce definition and types of mobile commerce.
  • Entertainment apps – these apps allow users to stream video content, search for events, chat, or watch content online. Social media apps like Facebook or Instagram are great examples. Moreover, video streaming apps such as Netflix or Amazon Prime Video have become incredibly popular with users all over the world. These apps usually boost user engagement by notifying members about updates and newly added products.
  • Utility apps – these are so obvious that we barely even realize that we’re using them. In fact, utility apps usually have the shortest user session times – people use them to get things done and then move on. The most popular types of utility applications are barcode scanners, trackers, or healthcare apps.
  • Travel apps – the main idea behind this category is helping users to travel easily. Travel apps transform a smartphone or tablet into a travel diary and guide that helps users to discover everything they need to know about the site they’re visiting. Most of the tourists are digitally savvy travelers who know how to use apps to their advantage. Can you imagine what traveling would look like without Google Maps, Airbnb, or Uber?

4. Mobile app statistics

To give you a broader view of the mobile app scene today, here are the most important statistics that show you the current mobile landscape and its future.

  • An average mobile app user in the United States has over 100 apps installed on their device. (Source)
  • A typical mobile user will check their smartphone 63 times a day. (Source)
  • 87% of users check their phone at least one hour before sleep. Out of those, 69% will check their phone at least five minutes before sleep. (Source)
  • 79% of users will abandon a digital product after only one day of use. (Source)
  • Mobile apps today account for more than 57% of all digital media usage. (Source)
  • By 2021, almost 7 billion people worldwide will be using mobile devices. (Source)
  • By 2022, the mobile app downloads number or year will reach 258 million. This is a great increase from 2017 when that number reached 168 million. (Source)
  • By the same year, the app store consumer spending will increase by 92% to reach a smashing $157 billion all over the world. (Source)

5. What is mobile app development?

Mobile app development is a process that draws a lot from traditional software development. However, it’s focused on creating software that takes advantage of the unique features of mobile device hardware.

The most straightforward scenario for building a mobile app is taking a desktop-based application and importing it to a mobile device. However, as the app becomes more robust, this technique can become problematic.

A better approach involves developing specifically for the mobile environment. It’s a technique that takes advantage of all the benefits mobile devices offer. The process takes into account their limitations and helps business owners balance cost with functionality.

For example, applications that use location-based features such as maps are always built from the ground up with mobile in mind. Location-based services delivered on a desktop app make less sense because desktop users aren’t moving around.

Modern smartphones and tablets are equipped with features such as Bluetooth, Near Field Communication (NFC), GPS, gyroscopic sensors, cameras, and many more. Developers can use these features to create apps with technologies such as Virtual or Augmented Reality, barcode scanning, location-based services, and many more. The most successful and popular mobile applications use smartphone features in the best possible way.

Optimal performance is a key goal of mobile development teams. Mobile devices such as smartphones or tablets differ from desktop devices in many ways. Experienced software agencies are aware that mobile apps need to be designed and built with performance in mind.

Wojciech Szwajkiewicz - CEO and President of Droids On Roids

Wojtek
CEO at Droids On Roids

The issue of hardware in mobile devices introduces another complication:

While developers building apps for iOS can only expect the apps to be run on two types of devices (iPhones and iPads), Android developers can’t say the same. In fact, for them, every smartphone and tablet may be running on different hardware and various versions of the operating system.

6. How to build a mobile app?

If you’re planning to build a mobile application, you can basically choose from three different options:

  • Build an in-house development team,
  • Hire specialized software development agency,
  • Rely on the expertise of freelancers.

Here’s a short overview of each of the options with its respective pros and cons to help you make the best decision for your mobile development project.

Building an in-house team

If you decide to create an in-house development team for your project, you will have full control over the direction developers take in building your mobile app. However, this will come at a high cost.

After all, you will not only have to pay for developers’ salaries but also a range of overhead costs such as workspace, benefits and perks, hardware, software licenses, and many others. This can be especially difficult if you’re located in a region where hiring mobile developers is expensive.

If you choose this option, expect a very high price tag on your app. The risk of your project will increase as well because you will be responsible for the work of your team.

Hiring a freelancer

This option is definitely the cheapest one of all three. By hiring a single freelancer to build your mobile app, you will enjoy a simplified development process. Communication might be easier, and you’ll face no collaboration issues because only one person will be responsible for building your app.

However, finding a reliable and trustworthy freelancer is a challenge. You will be better the entire success of your project on a single person’s skills and expertise. Even if you hire a talented mobile developer, they might be really talented in backend development and have limited knowledge of frontend development. If you create an app that works well but has an unattractive user interface, your product will suffer.

Hiring a freelancer is a cost-effective option, but it comes with many different risks that may compromise the process of building your app at every single stage.

Hiring a software development company

There are many software development agencies that specialize in mobile development today. By teaming up with such companies, you will be delegating the task of building your app to a group of professionals who can provide you with a broad range of services such as:

  • UX/UI design,
  • product development,
  • backend and frontend development,
  • testing,
  • quality assurance (QA),
  • and project management.

The main benefit of this option is that you can take advantage of the collective expertise and knowledge the team has acquired through realizing projects that are similar to yours. You can confirm their experience and skills through the portfolio and ask for client recommendations as well.

We recommend you to check out more tips on how to choose the best mobile app development company for your project.

This option offers an excellent cost and quality balance, especially if you decide to outsource your project to a team located in a region where the development rates are lower than locally. You can estimate your project with different software houses to compare their offers and learn how much your mobile app will cost in 2020.

So, that is all when it comes to comparison of the 3 above models. For a more in-depth comparison of an in-house and outsourced team, read our guides:

Conclusion

We hope this guide helps you understand what the mobile app development landscape looks like today. In the future, we’re going to see even more innovative mobile applications take advantage of cutting-edge technologies like the Internet of Things, Augmented Reality, Virtual Reality, and many more.

And here’s something you can be sure of:

Businesses are going to be investing in more resources in mobile apps as mobile devices overrule desktop devices when it comes to the number and engagement of users.

Are you looking for an experienced mobile development team for your project? Get in touch with us.

We specialize in mobile development, and our experts know all the latest technologies to help you create a mobile app that offers an outstanding user experience and generates a tangible value for your business.

The post What Is a Mobile App? | App Development Basics for Businesses appeared first on Droids On Roids.

]]>
https://www.thedroidsonroids.com/blog/what-is-a-mobile-app-app-development-basics-for-businesses/feed 0
What is a Fintech Application? | Definition and Insights for Business Owners https://www.thedroidsonroids.com/blog/what-is-a-fintech-application-definition-and-insights-for-business-owners https://www.thedroidsonroids.com/blog/what-is-a-fintech-application-definition-and-insights-for-business-owners#disqus_thread Thu, 02 Apr 2020 09:07:10 +0000 https://www.thedroidsonroids.com/?p=24171 Read our guide to fintech and learn what types of fintech applications companies are using to power their growth.

The post What is a Fintech Application? | Definition and Insights for Business Owners appeared first on Droids On Roids.

]]>
Unless you’ve been living under a rock, you’ve probably heard the term “fintech” being used all over the place. Fintech is one of the most exciting areas of technological development today.

Finance has always been a data-rich and innovative sector, so no wonder that now it inspires the creation of the most advanced solutions.

But what exactly is fintech? What is a fintech application? And what does finance app development look like?

In this article, we answer these questions and share a detailed overview of this exciting tech area. Read on to find out everything you need to know about what’s happening at a crossroads of finance and technology right now.

Table of contents

  1. What is fintech? And what is a fintech application?
  2. Benefits of fintech apps
  3. Fintech statistics for 2020
  4. Types of finance applications
  5. Fintech application case study
  6. Fintech development – 5 best practices
  7. Conclusion

1. What is fintech? And what is a fintech application?

“Fintech” is a combination of terms “finance” and “technology.” It refers to any business that takes advantage of technological solutions to build, automate, or improve financial services and processes.

The term “fintech” is relatively broad, and since the industry is growing rapidly, we see new services and applications emerge every year for both consumers and businesses. From InsurTech and cryptocurrency to mobile banking and investment apps, expect fintech to take on many shapes and sizes.

When you think about fintech, you’re probably imagining startups that use cutting-edge technologies. But traditional finance companies and banks are now adopting fintech services as well.

Is fintech really such a brand-new industry? It’s certainly one that has evolved really quickly during the last decade. However, technology has always supported the financial sector. Just think about the introduction of credit cards, ATMs, electronic trading, personal finance applications, and high-frequency trading during the last few decades.

Fintech applications vary greatly from project to project. Many of them use machine learning algorithms, data science technologies, and cutting-edge solutions like blockchain to carry out various tasks such as processing credit risks or running hedge funds.

2. Benefits of fintech apps

Convenience

Fintech uses mobile connectivity to improve the convenience and efficiency of online transactions. An increasing number of consumers are using tablets and smartphones to manage their finances. Fintech apps can help them streamline these processes, achieve more, and get a better experience.

Personalization

Companies that build fintech apps usually add data analytics solutions to them. This allows to easily trace and address the evolving customer needs. Thanks to all of this data, businesses can deliver truly personalized experiences and products to consumers. Entire business models are now being built based on access to a wide range of customer information.

Quicker rate of approval

Fintech apps increase the accessibility of different finance products to consumers by speeding up the rate of approval. This is relevant to banking and insurance products. Companies use fintech applications to automate and speed up the approval process so that it can be completed even within 24 hours.

Security

If there’s one thing all fintech applications have in common is their focus on security. Companies are using the latest and safest mobile technologies to build their products. They invest in security to make sure that consumer data is kept safe. Biometric authentication and data encryption are the most common security measures used in this context.

Cost reduction

Fintech companies can offer their customers the advantage of lower fees than traditional banks. That’s because they don’t have any brick-and-mortar costs such as advertising or rent. Instead, they can invest all of their revenue into product development to enhance their offer.

3. Fintech statistics for 2020

  • The global financial sector will be worth $26.5 trillion in 2022, growing at a CAGR of 6%.
  • The market share of the 48 most prominent fintech unicorns is worth more than $187 billion, as of the first half of 2019. This represents slightly over 1% of the global financial industry.
  • 60% of credit unions and 49% of traditional banks in the United States believe that partnering with fintech companies will be important for the future.
  • What is the most significant fintech product? Digital payments, without a hint of doubt. It amounts to 25% of the fintech market.

Fintech and mobility

4. Types of finance applications

Take one look at the fintech scene, and you’ll see that fintech is transforming a wide range of financial services today. It not only affects business models and product offerings but also how consumers manage their finances. Here are the most important types of finance applications today.

Payments

Payment applications are changing the entire industry thanks to new digital processing solutions and networks. They facilitate better digital connectivity, lower processing costs, and ensure consumer identity protection. Asset management and processing payment transactions are key areas of focus here.

Mobile payments

Another field where fintech has a huge impact is in mobile technologies related to payments. Practically every transaction made by a consumer will involve payment processing. Mobile wallets and similar integrated payment solutions are now used by many consumers and businesses. They’re secure, easy to use, and offer a great user experience.

Mobile payment platforms transcend the barriers of traditional methods. Without them, many of the transactions we make today would be difficult to complete. Some of the most famous digital wallets are Google Wallet and Apple Pay.

Read this too: How Mobile Apps Help in Digital Transformation Success

Personal wealth management

This area of fintech applications concentrates on improving the wealth management processes of both businesses and individual consumers. Personal wealth apps are mobile applications that deliver a broad range of functionalities to help people manage their finances securely and quickly. Cnsumers and companies use them to manage their investment processes and portfolios.

Consumer banking

Many traditional banking institutions are embracing digital technologies to improve their services. They invest in mobile apps that offer accessible banking solutions and products. This type of fintech apps helps to boost the user experience, reduce costs, and removes the friction from operations over the traditional means of banking (which often leave consumers dissatisfied).

Blockchain

Blockchain solutions such as peer to peer transactions, smart contracts, blockchain-powered trading platforms, immutable records, and decentralized ledgers have become a significant element of today’s finance landscape. This cutting-edge technology that offers a transparent method of tracking the entire lifecycle of financial transactions. Thanks to its decentralized and distributed nature, it is also gaining increasing trust of consumers.

Insurance (InsurTech)

Fintech applications offer a lot of value for the insurance industry, which is now adopting digital solutions to improve the customer experience and increase operational efficiency. Insurance companies are using smartphone apps, Internet of Things (IoT), and artificial intelligence to offer more impact with their services. These technologies are changing how insurance products work and offer advantages such as more personalization, customized offers, and online marketplaces.

Regulatory applications (RegTech)

RegTech was created in 2015 by the Financial Conduct Authority. It’s a subset of fintech that concentrates on building technology that improves the delivery of regulatory requirements. This field uses innovative solutions for better compliance and delivery of secure, cost-effective, and easy-to-integrate regulations. It aims to standardize and improve the transparency of regulatory processes – as well as to some extent automate features such as risk management, transaction monitoring, or regulatory reporting.

Lending

This area focuses on developing different applications that offer lending solutions to businesses and consumers. The main idea is to streamline the process, making it more personalized and accurate. Smart platforms that use AI and machine learning algorithms can process and verify identity credentials to avoid making any errors. Such technologies also help to forecast income prospects, assess the borrower’s track record, appraise collateral value, and make predictions about the changes in their capabilities.

Trading

Fintech is also revamping the trading sector. Such solutions are designed to reduce the cost of international trade, increase transparency in trading, and facilitate trade finance. Some of the most impressive applications we’ve seen so far support cross-border trading with the help of IT systems and smart distribution platforms. Moreover, solutions such as robot advisors could be a great help to beginner investors in managing risk.

5. Fintech application case study

 

Fintech mobile app examples - HoneyBee

 

HoneyBee – personal finance app offers a fast way for users to get an advance on their next paycheck or an emergency loan.

The idea here was helping employees access an extra week’s pay at any time of the month to help them manage unplanned expenses and build credit, regardless of their credit history. Our team focused on creating a mobile app design that would be simple and streamlined. We wanted to make the process of requesting a payment advance or emergency loan as quick and easy as possible. Employees can now complete the entire process in 15 minutes or less.

Our designers created a user-friendly and convenient method for filling out forms. Thanks to our Quality Assurance process, as well as the newly introduced mobile QA multitool, Hyperion, we delivered a crash-free app with clean and maintainable code and a consistent UI.

6. Fintech development – 5 best practices

Craft a strategy for growth

It might be tempting to choose the quickest way possible when developing your app to bring it to market before anyone else does. However, if you don’t dedicate enough time to planning, it might impact your short and long-term success.

First of all, make sure that your framework and coding are carried out with scalability and expansion in mind. Be optimistic about the future of your app during the initial launch. If your app becomes popular quickly, you don’t want to serve your users downtime or clunky updates. That way, business owners can easily lose the momentum that the launch started. So, craft your strategy for growth right from the beginning.

Invest in UX and UI

Designers often say that bad UX ends up costing more than good UX. This is true, especially for finance apps that often deliver more complicated features and services involving money.

It’s is essential that your app offers a smooth customer experience and looks professional. If you end up with a poor experience, it will cost you your reputation (and even more money to fix it). Do yourself a favor and hire an experienced UX and UI designer who will help you navigate the rigorous testing processes for successful UX development.

Read this for more insights: How much does it cost to develop a mobile app in 2020?

Test your app

Ensure that user testing and feedback sessions cover all the possible demographics of your target audience. Be prepared for unexpected verticals to access your product.

For example, you might be building an investment app for millennials who are just starting their education in the market but are digitally proficient. It’s smart to consider that your app might be used by someone else. For instance, by some slightly older people who are in the same position investment-wise but might be not as used to mobile apps as Millennials.

That’s why an intuitive UX and easy-to-understand functions are essential for your product, no matter how digitally-savvy you expect your target audience to be. Overlooking such target groups can make a huge difference in the performance of your app.

Focus in security

Keeping a fintech app secure will give your users the confidence that their data – and, more importantly, their money – is in good hands.

Your app needs to have industry-grade encryption and security protocols. Make sure to introduce safe access to accounts and innovative authentication practices. You can even add a password generator that adds random strings of text users can use exclusively within the app.

Educate your users about security as well. Implement multifactor authentication to ensure that the right user is granted access to the app. Whether it’s a physical security token or cutting-edge biometric solution, you need to make sure that your app can verify user identity securely.

Don’t forget about compliance

This is a requirement specific to fintech applications. Any company that offers products or services to the European Union citizens needs to follow strict rules on consumer data privacy like the GDPR. For fintech apps, it means that user data such as banking information, profile image, name, or identifiable computer data like IP address needs to be stored and processed securely. If you fail to comply with the GDPR, you’ll be facing very steep fines.

One of the key principles of this regulation is privacy by design. This means that the mechanisms that process user data should be built with privacy in mind from the ground up. If you follow the regulation, your users will have peace of mind knowing that their personal data is stored and accessed privately and securely by design.

Read this too: 12 best practices for e-commerce mobile app development

7. What is a Fintech Application? Conclusion

Fintech is one of the most exciting technology fields today because it attracts a broad range of cutting-edge solutions that offer new products and reinvent traditional banking services.

If you’re looking to create a fintech application, make sure that you team up with a reliable and trustworthy partner that has experience in delivering fintech apps. Check on how to choose a mobile app development company for your project.

At Droids On Roids, we have ample experience in finance applications, and our teams are ready to help you realize your idea.

We have delivered over 130 mobile and web applications to clients located in different regions of the world, such as the United States, Australia, and Europe. When it comes to fintech, we know what we’re doing. Get in touch with us to get help from an experienced team that will help your application take off and scale.

The post What is a Fintech Application? | Definition and Insights for Business Owners appeared first on Droids On Roids.

]]>
https://www.thedroidsonroids.com/blog/what-is-a-fintech-application-definition-and-insights-for-business-owners/feed 0
Top Apps Made with Flutter – 18 Stories by Developers and Business Owners https://www.thedroidsonroids.com/blog/apps-made-with-flutter https://www.thedroidsonroids.com/blog/apps-made-with-flutter#disqus_thread Wed, 01 Apr 2020 09:00:43 +0000 https://www.thedroidsonroids.com/?p=14083 We asked 18 different business owners and developers who are actively working with Flutter about their insights.

The post Top Apps Made with Flutter – 18 Stories by Developers and Business Owners appeared first on Droids On Roids.

]]>
Do you want to get inspired by top apps made with Flutter? Read this article to see 18 Flutter apps examples with insights from their owners and creators.

“Development in Flutter is a breeze“, “Cross-platform solutions have been around for a long time, but Flutter is the first one to do it right.”, “The biggest downsides to Flutter are platform risk, and size of the developers’ community”, “Our crash rates are down tenfold, and our users are happier than ever”.

What you’ve just read is only a handful of quotes from the eighteen stories of apps made with Flutter we’ve collected in this article. We asked business owners, developers, and other Flutter app development experts to share their experiences.

It’s worth reading those stories if you are interested in developing with Flutter, or – as a business owner – you consider cooperating with a Flutter mobile app development company.

Flutter – a short introduction

On December 4, 2018, Google released Flutter 1.0. Check this video to watch the announcement from Tim Sneath.

What’s more, Google used the same event to launch Hummingbird – a new project focused on bringing Flutter apps to the web, running the same code whether in your browser or on your smartphone (it is in beta, for now).

In December 2019, Google released Flutter 1.12.

Flutter is Google’s mobile app SDK. Complete with a framework, widgets, and tools, Flutter gives developers an easy way to build and deploy fast, aesthetically-pleasing mobile apps – on both Android and iOS platforms – with as little overhead as possible.

Flutter is a hot topic, and it’s high time you found out if this emerging technology could improve your mobile app development process, reduce costs, maybe both.

Here you can read our articles on:

Rest assured, in this post, we dig deep.

What will you find in this article?

  • A list of the 23 top applications made using Flutter – including descriptions, screenshots, and other useful links
  • Stories and recommendations shared by 18 Flutter app owners and developers with detailed insights into using the technology

What you’ll learn from the Flutter stories:

  • Why did the developers and business owners decide to use Flutter for their projects?
  • Would they use it again? Why? Why not…?
  • Did they enjoy working with Flutter?
  • Was it noticeably different to native app development, or React Native?
  • The pros and cons of Flutter – both from a developer and business perspective

How we chose the applications listed in this article:

The selection criteria were subjective – we based our choice on the following:

  • Apps that represent different categories (including social networking, entertainment, finance, sports, travel and more)
  • Big market players’ apps e.g. Google, Abbey Road Studios, Alibaba (Alibaba’s Xianyu app has 50M+ downloads)
  • Apps with an original idea and social value ( e.g. an app for adopting homeless animals)
  • Apps created as a hobby, which gained notable recognition among users (e.g. a school planner)
  • Applications with a beautiful UI (e.g. Reflectly, HuYu)

If you’re ready to learn about Flutter from experienced practitioners from all over the world, it’s time to dive into the best Flutter apps there are.

Table of contents

Social Networking

KlasterMe

app for content discovering & creation

The app for creating, sharing, and discovering different forms of content from images to articles. A user can create a page to showcase their contents and get recognised in the community. The pilot web version of the app was released on December 2018, the Android version on January 1, 2019, and the iOS version on January 5, 2019.

App on App Store | App on Google Play | Website

Abin Baby
Co-founder and Developer at KlasterMe

Once you are past the steep learning curve Flutter almost works like magic. Abracadabra… there comes a navigation drawer. Hocus pocus…a hero animation. It is that easy and fun!

Flutter widgets made the development simple, productive and fast. Although third-party modules and components are not as large as in case of React Native, more than 90% of the widgets required for the first version of our app were available in Dart Pub. These widgets are so easily customisable that you can create effortlessly almost anything you can imagine.

What is more, Flutter has a really enthusiastic and helpful community around on Github, Stack Overflow, and Google groups. Also, I need to mention that they have insanely good documentation which made the on-boarding really, really easy.

The Hot Reload feature also helped to speed up the app development process making it straightforward to experiment with the UI, and fix bugs in extremely short time.

Comparing Flutter to React Native:

  • If you are new to Dart and trying to learn Flutter it will consume more time than React Native. At the same time, if you have experience in Dart learning Flutter will be just a walk in a park.
  • The components in React Native are pretty basic so if you need anything extra, considerable effort is required in styling. Most of the time you have to use a different component for iOS and Android or style it differently. At the same time, for Flutter everything is a widget. Widgets are based on material design and most of them are adaptive so you can use the same widget for Android and iOS.
  • Speaking about performance, Flutter has really an upper hand over React Native as it is compiled to ARM or x86 native libraries, which makes it really fast whereas React Native is not compiled to native code and still has that javascript layer that makes it underperform compared to Flutter.

Flutter is the best mobile development framework I have come across so far.

Pairing

app connecting singles

A social network for matchmaking and dating. Aims to create a safe environment for finding the right match for a meaningful relationship.

Apps Made with Flutter
Apps Made with Flutter
Apps Made with Flutter
Apps Made with Flutter

App on App Store | App on Google Play | Website

Ronen Rabinovici
Co-founder at Pairing

Business-wise, one needs to understand that Flutter gives you a cross-platform solution for:

1. UX/UI – 100% shared between all platforms. Unlike React Native, which is a bridge to native UI elements.

2. Business logic, math, algorithms – 100% shared.

At the same time, anything that needs to talk to the operating system (e.g. getting phone contacts) cannot be shared and has to be developed separately for each system. Of course, many common plugins already exist. So, the bottom line is that most of the code is shared. Probably around 85% for Pairing.

The big difference from native development are the widgets introduced by Flutter. In other development frameworks, UI is defined by some xml-like language. Here, all UI is part of the code. I find it both more comfortable and flexible.

The fact that every scene is built from code gives you a very easy and elegant way to update the view based on the app’s state, incoming data, and user input. You don’t need to have an XML and hook it up in code then. It’s inherently hooked to your model. It’s completely REACTIVE.

It feels like the Flutter team took the good parts from native development, combined it with the good parts React-Native introduced and further developed it from there based on React Native’s lessons. So it feels like the crème de la crème of both solutions.

Another huge advantage of Flutter is the Instant Run. You change the code and it is immediately updated on your device. Without even a ‘flashing’ screen.

Yet another asset – Google’s support is not only for the framework but for its ecosystem: documentation, Github issues, and plugins (e.g. Firebase plugins, files, etc.).

Developing with Flutter really feels like native development does. The language is strong. The compiler catches errors. The IDE helps you to code, and – just like in the native – you get common views and UI elements.

If your app is specifically designed ONLY for Android or ONLY for iOS, and it needs many interactions with the operating system – you are probably better off with native development. In all other cases, we would go with Flutter.

To sum up, we are very satisfied with Flutter and believe that it is the future in mobile development. In fact, we are now working on migrating all our existing native apps to Flutter.


in10

in10 – RSVP & ETA tracking app

in10 is an event app offering advanced RSVP and ETA tracking for simpler meeting up.

Apps Made with Flutter – in10 screen make plans
Apps Made with Flutter – in10 screen permission
Apps Made with Flutter – in10 screen event location
Apps Made with Flutter – in10 screen profile

App on App Store | App on Google Play | Website

   

Alexander
Flutter Developer at Droids On Roids

   

Maciek
QA Engineeer at Droids On Roids

We started to learn Flutter because it enables maintaining one codebase for multiple platforms, that’s it, thank you for reading our experience with this framework, see ya! Joking.

Actually, no.

Thanks to Flutter, we were able to create code that saved us a lot of work which needs to be done on both platforms if you go native.

Of course, first, we needed appropriate preparations that included a solid workshop to clarify the aim of our product, establishing the whole spectrum of features understandable to all team members – starting from Product Owner, right up to developers.

I said “in most cases”, because there are some functionalities from native platforms that don’t have a corresponding Flutter plugin yet and everything relies mostly on the effort of the community, companies, and Flutter teams.

This is the main reason why we chose this framework: Flutter is a fresh product with the vigorous community having this energy that is visible in all Flutter related pull requests, articles, videos, and events – from local meet-ups, to huge conferences.

Knowledge about Flutter spreads really fast and is easily reachable, that’s why the learning curve is not that steep. Its accessibility really helped us to get into this project.

Before we start developing commercial Flutter apps, our experienced native developers were able to start developing with Flutter really fast. Why? Android developers are familiar with Dart language that is a mix of Java and JavaScript, while iOS developers, on the other hand, have to come back to semicolons (I know 🙁 ) but they get declarative UI that is now definitely a trend because of the new SwiftUI framework.

In10 app really benefited from Flutter because this application contains a lot of components that look completely the same on both iOS and Android platforms, there is just no reason to double it with two codebases.

There was also a functionality where we decided to go native.

We thought that really complex features need to be done with native code due to the risk of having critical implementation that affects both platforms. It was the ETA (Estimated Time of Arrival) tracking, the crucial feature of in10. It needs to work smoothly and fast.

That would be a huge mistake.

It turned out that authors of the library that we wanted to us to implement ETA, are mainly focused on Flutter. They are interested in updating cross-platform repositories rather than native, which could be experienced by the latest posted issues and releases. At the end, after consultation with them, we completely changed our direction and implemented the whole feature with Flutter. With some troubleshooting and further refinements, we were able to create a reliable mechanism for ETA tracking with Flutter.

To sum up. You just need to give Flutter a try because eventually, you will benefit from it, a lot.


Meeve

app to connect people offline

The app allows users to connect with people nearby through events.

Apps Made with Flutter
Apps Made with Flutter
Apps Made with Flutter
Apps Made with Flutter

App on App Store | App on Google Play | Website

Ishaan Bahal
Co-founder at Meeve

Development in Flutter is a breeze. It’s so much faster than the native code. For businesses thinking of using Flutter – do it. It can reduce development costs by half, because Flutter makes it easy for devs to maintain the codebase for apps running on both iOS and Android.

Starting to write an app with Flutter can be a daunting task at first thought for a few reasons:

  1. Dart. It is a new language which is hardly ever used in the industry, at least no one we knew ever used it for the web. One can admit – it’s kind of pain to learn new languages. But Dart is nicely designed, and anyone familiar with either Java, JS or even Kotlin can pick it up in a few hours with ease.
  2. Coupled code. With Flutter you write code inside the layout you are designing. Since everything is pure Dart and nothing like JSX happening, everything is a widget and highly customisable, which starts to make a mess quite easily. It takes some time and a bunch of tries and errors to understand how to structure your code to keep it readable after 2 days.
  3. It’s new. Anything new cannot be put into production just like that – and people are skeptical of Flutter too. There’s no need for this skepticism because despite Flutter being new it is quite stable for production use. We’ve faced only two types of crashes since the launch, and those were quickly fixed by the Flutter team.
    Overall, Flutter has been a great value for us. We definitely will be sticking to Flutter for the upcoming projects. We are working on one right now and eagerly wait for the hummingbird project to see the light of day to target Meeve for the web too.

n8

app for finding events

The app allows users to meet new people nearby by joining them in real life activities.

top native mobile apps made with flutter
top native mobile apps made with flutter
top native mobile apps made with flutter
top native mobile apps made with flutter

App on App Store | App on Google Play | Website


Photo & video

PostMuse

Instagram story & photo editor

PostMuse is a free photo editor that helps users to create personalised Instastories and Instagram posts. The app contains plenty of free fonts, free images, photo frames, and emojis to pick from.

App on App Store | App on Google Play | Website

Andrei Diaconu
Founder of PostMuse

We see a lot of benefits that stem from using Flutter. Our team has two people, and only one actually codes, but this is more than enough for us to make the progress we needed, both for iOS and Android. We built PostMuse in a matter of months, including research. Considering this is a media editing app, we went to market in record time.

Developing in Flutter is simply magical – everything is nearly instant to reload, complex UIs get built in hours, and the code itself is very easy to read through and maintain. Anyone can write code that a machine understands, only good devs can write code that other devs can understand, and Flutter makes it easy to be a good dev from my experience.

The Flutter team made sure to make development fun, and this includes Dart as a language. Do I miss Kotlin? Yes, to be honest – but I hope to never go back to slow reloads, slow compiles and lots of boilerplate to go along with it.

I wrote a small app in React Native and can say that developing with was fairly fun, but when it comes to complex UI styling, nothing beats Flutter. And when I say nothing, I also mean the native Android and iOS frameworks. I think in some cases the Flutter implementation of Material Design was more on-point than the Android implementation for it. It really is that extensible and powerful, and playing with it for just a few days should make that obvious to anyone.

When is Flutter NOT a good choice? A good example can be any app with very little UI, or apps that have a lot of system integration to do. If you need a functionality and most of the work you will put in will be in Swift or Kotlin anyway, then you should probably just go native. Before you make that decision though, check out Dart Pub because there is a chance someone created a package with that OS-specific code.

Flutter still has a few things missing. A complete and reliable solution for in-app purchases has not emerged yet. If you are worried about this, don’t be – there are a few libraries that solve parts of in-app purchases and you can most likely get the job done. I think everyone wants an official, really good repo for in-app purchases, and the Flutter team is working on it.

If you start a new project, you should definitely consider Flutter. If you have problems, the community will be super helpful. I will definitely use Flutter in all my future projects.


Health & Fitness

Reflectly

mindfulness app

A personal mental health companion. Reflectly is a journal using artificial intelligence to help users structure and reflect upon their daily thoughts and problems.

top native mobile apps made with flutter
top native mobile apps made with flutter
top native mobile apps made with flutter
top native mobile apps made with flutter

App on App Store | App on Google Play | Website

Jacob Kristensen
Founder & CPO at Reflectly

Reflectly was started in January 2017. Fast forward to August 2017 – after an extensive period of user testing – we launched a MVP of Reflectly, built entirely in React Native.

We had a huge issue with the cross-platform compatibility of our UI between iOS and Android. It was actually so bad that we had to initially delay our Android release by 1.5 months to just get everything fixed.

We simply could not output our intended features fast enough, and that was slowing down our business immensely which was frustrating to say the least. So in January 2018, we started looking far and wide, where we came across Flutter.

As a former web and native app developer, getting started with Flutter was truly awesome. I know it’s been said before, but the huge power and productivity you get with instant stateful Hot Reload was mind-blowing to me.

In our case, from the first line of Flutter code that was written in March 2018, until we were finished with the entire app – including an entire redesign and adding a bunch of new features underway – it took only 2.5 months. This included both the learning curve of Dart as well as an entire rewrite from scratch for both frontend and backend – with 0% code reuse from our previous implementation.

Standing on the other side of the rewrite I can hands down say it was the best decision we’ve ever made for our platform. Not only are we able to maintain incredibly fast and extremely confident release cycles, but also we haven’t ONCE had to do a platform-specific implementation.

Our crash rates are down tenfold, and our users are happier than ever.

That being said, Flutter also has its natural shortcomings here and there. One of the biggest for me is the lacking support of being able to compile Apple Watch and tvOS apps out of the box. This requires Bitcode support which Flutter doesn’t have at this time.

So in summation – Flutter is extremely awesome. Soon we’ll be able to support a nearly 100% shared codebase across both mobile and web with Hummingbird being showcased later this year. On the other hand, you should also know your project limitations. Take a look at what your project requires and see if Flutter is a fit. If you do decide to give it a try, I can assure you won’t be disappointed.


Watermaniac

app for tracking drinking water

With Watermaniac users can track how much water they have drunk every day.

top native mobile apps made with flutter
top native mobile apps made with flutter
top native mobile apps made with flutter

App on Google Play | Developer’s website

Artur Rymarz
Creator of Watermaniac, Software Engineer at intive

I had a feeling Flutter might be a big thing in the software industry, and I’m really pleased I trusted myself, and I do not regret a single minute I spent on learning Google’s Flutter.

As a developer, I really enjoyed writing an app in Flutter comparing to React Native which I gave a shot once and disliked it after a few hours. Creating simple and advanced UIs is so joyful I’m thinking about porting the same approach to Swift by creating a library for that.

Flutter is simple to learn so even if in your team there is no single developer specialized in it, the cost of getting training for the ones willing to learn Flutter should be quite low.

I’m not sure about the maintenance costs yet, though. It might seem to be lower in most scenarios, but if one day there is a big iOS/Android update that breaks half of the features we have implemented it might be devastating, especially if there is a lot of dependencies to plugins which authors might abandon. Either way, in my opinion, Flutter is a great choice for startups with a lower budget, although native iOS and Android apps should always perform better (if written correctly), so for apps where performance is critical, I would stick to native solutions (Android app development, iOS app development).


Shopping

Xianyu, Alibaba

m-commerce app

Alibaba, the world’s biggest online commerce company, used Flutter to create a beautiful app experience for iOS and Android on their Xianyu app, which has 50M+ downloads. More than 10 millions users use this app every day.

App on App Store | App on Google Play

Bing Sun
Developer at Alibaba Group

We were immediately intrigued by Flutter possibilities when it comes to UX – including high FPS and smooth UI. But, above all, Flutter was an incredible time-saver. It allowed us to use a single codebase which makes the maintenance of our app much easier and faster.

Because of tens of millions of users we had, we could not build a new app from the very beginning, so we started implementing Flutter features incrementally, incorporating them with our apps. The ItemDetail page – the most crucial, complex and frequently visited section – is run through a single codebase on Android and iOS using Flutter.

On the other hand, we were encountering unprecedented challenges & difficulties, e.g. with Flutter SDK when it was still in beta, or with adding Flutter to existing native projects. We needed to provide a hybrid mode of Flutter and native and ensure supporting tools for efficient collaboration under this mode. We were the first one who did this. At the end of the day, thanks to solving all these problems our team grew up quickly, and thus we have contributed to the improvement of Flutter.

Using Dart and single code to implement pages was different from the old habits we used to have, but we fall in love with it as soon as we tried it out. What else can be more fascinating than seeing results right away while editing your code?

Yep, we like Hot Reload and Dart, which are so easy to get that the front-end developers would ask “Are you sure this is not a Client-side code? They look like Javascript + CSS, I mean even I would like to give it a go!”

In no time, we made elegant pages. Wicked!

Alibaba have published a few articles about their Flutter experience, you can find them on their Twitter. What’s more, Google has created a video about Xianyu app.


HuYu

app for paid surveys & rewards

With HuYu app, users share their shopping data by scanning grocery receipts and giving their opinion in surveys. The data is anonymized for market research. In return, users receive points that can be redeemed for gift cards and vouchers.

Apps Made with Flutter

App on App Store | App on Google Play | Website

Karyn Mukerjee
dunnhumby’s Director of Data Innovation

Flutter played a key role in the HuYu project. We were amazed by the speed in which we got the app to market – it took 16 weeks.

Swav Kulinski
Lead Engineer at The App Business

One of the key changes we noticed was the interaction between developers and designers. Native apps tend to have a long design-develop cycle, and native UI toolkits are more time consuming to use. Specifically, modifying UI once implemented is much more difficult. However, this is no longer true with the help of Flutter.

The main benefit Flutter has over native and React Native is the lack of platform constraints. Flutter is not muzzled by platform UI because it doesn’t use it. It renders everything by itself. You are free to build the best UX without compromise. It is the main difference between Flutter and React Native. React Native delegates drawing to the platform.

This approach has a nice ‘perk’ which comes with owning its rendering pipeline. Native UI toolkits are quite fragmented because of the system versions. For example, Android has introduced many animation frameworks to the SDK over the years. As you try to support older system versions, you learn the hard way that it’s not easy to implement animations which work flawlessly on all versions. You have to degrade the user experience. Flutter doesn’t have this problem as it’s not dependant on the version of the system it’s run on.

Flutter shines the most in projects with very bespoke UI and demanding UX. This advantage will diminish if the focus of the app is not on how it feels and looks. Flutter communicates with the host system using channels. They require implementation in the platform-specific language. For everyday needs like Bluetooth, Camera or Google Maps you will find existing plugins, but for everything which cannot be found in the Dart libraries, you will have to implement your own plugin. Creating one or two integrations is not a massive effort, but when your project requires a dozen, then it might be just not worth it. So, complex integrations with the host platform may diminish the benefits of using Flutter.

We use Flutter currently, and our clients are more likely to hear about Flutter now. Launching 1.0 in December of 2018 was a huge contributor to this. And as we see major players like Alibaba using Flutter, the future looks promising.


Music

Topline

music recording app

The app lets artists record and save their song ideas wherever they are. It was showcased at Google I/O 2018 event. The solution has been recognised by the music industry thanks to distribution platforms like Spinnup or Ditto. “Music App of The Year” and “UX of the Year” at UK App Awards 2018. Designed & developed by Miquido.

Google has created a video about Topline app.

App on App Store | App on Google Play | Website

Paweł Zieliński
Head of Marketing at Miquido

Flutter improved and boosted our app’s development. The creation of the Topline MVP took Miquido ten weeks. Long working hours, extreme intellectual effort, facing unfamiliar issues – it was well worth it! We expand our knowledge immensely during the process.

When we started the development, Flutter SDK was in an experimental Alpha version – which means it wasn’t stable. Even though the design looks really simple, the app structure itself is very complicated. There were plenty of challenges involved, connected directly to the new technology. Fortunately, there were also plenty of cases that the Flutter team helped us solve.

A good point about Flutter is that it has a wide range of widgets which are ready to go, customizable and perform just like you expect them to: they are fast and pretty. One of the most revolutionary features that helped our developers improve faster is the Hot Reload – thanks to this solution, you can notice your mistakes much faster and correct them in the real time. Last but not least, Flutter helps you optimize and build an APK for your release, giving better performance and significantly reducing the file size.

To sum up, creating the app with Flutter was a challenge, but we made it, and we loved it! Flutter itself is showing great potential for implementing business logic for apps, writing UI and SDK’s. However, before it goes as a standard, development community need to appreciate the new SDK and transform it to business value.


Music Tutor

learn to read music app

With the app, users can learn to read sheet music and improve their sight-reading skills. It helps to develop speed and accuracy in reading sheet music by identifying music notes in timed sessions.

apps made with flutter
apps made with flutter

App on Google Play | Website

Bijoy Thangaraj
CEO at JSplash Studios

Thanks to Flutter I was able to bring out the product to the market quickly. I have plans to use this technology for a few of my upcoming projects.

The main drawback of Flutter is that it is widgets based, and not all low-level functions are available as widgets at this point. What is more, currently, there is no drag-and-drop based visual IDE for laying out the widgets. Its all through code as of now.

When it comes to pros of Flutter, it is relatively easy to develop and maintain an app with this technology, because of a single code base. Another advantage of Flutter is that apps made with this technology have native performance.


Entertainment

Hamilton

app for Hamilton musical fans

The official app of the hit Broadway musical – Hamilton. It includes daily lotteries, exclusive news, videos, a trivia game, merchandise store, and much more. Check out the article How the Hamilton app uses Flutter to do more for its fans.

App on App Store | App on Google Play | Website

Google made a video about Hamilton app describing experiences of its developers and project manager:


InKino

showtime browser for Finnkino theatres

inKino is an app made with Flutter that allows users to search for movies and showtimes in Finkino cinemas, see movies details and buy or reserve tickets.

top native mobile apps made with flutter
top native mobile apps made with flutter

App on App Store | App on Google Play

Iiro Krankka
Creator of inKino app, Senior Software Engineer at Reflectly

For my app, Flutter was a perfect choice. I was able to publish inKino within a couple of weeks, to both app stores, after only working on it in my free time after work.

The widgets and developer APIs that Flutter provided were sane, well-thought, and predictable. There was no need for boilerplate code such as list adapters, and everything was nicely documented.

I also quite liked the fact that Dart had support for JIT and AOT builds, so I could Hot Reload and iterate faster on development mode, but still ship a natively-compiled and fast release build when it was time to publish the app.

The only disadvantage I really could think about at the time were that there were not that many resources or established guidelines on how to structure your Flutter apps. There were not bigger open source apps to learn from regarding testing, best practices, architecture, and folder organization either. I came up with a lot of solutions on my own.


Sport

Top Goals

app for soccer fans

Follow your favorite teams live, react to the latest news, create your own polls and more.

top native mobile apps made with flutter

top native mobile apps made with flutter
top native mobile apps made with flutter
top native mobile apps made with flutter

App on App Store | App on Google Play | Website

Victor Bonnet
Creator of Top Goals app, Senior Software Engineer

I have to admit that at first I was skeptical about Flutter, mostly because of the language and the fact that it doesn’t use native widgets. However, with some training and a bit of effort, I quickly became more experienced in building screens. I was highly surprised about the performance and I also loved playing with animations.

Now I am able to build an app with Flutter faster than I would do with native solutions for a single platform. I will definitely use it for my future projects. I am also using it at work for developing prototypes. As a mobile developer I highly recommend Flutter. At least, give it a try.


EntrenaPro

app to finding trainers and sports centres

The app connects athletes with sports coaches and sports centers. It allows users to look for training in their area.

top native mobile apps made with flutter
top native mobile apps made with flutter

App on App Store | App on Google Play | Website

Pedro Moreno
Product Manager in EntrenaPro project, Digital Product Designer

As a non-technical person, I perfectly remember the moment when we decided to choose Flutter evaluating the possibility of creating own components. It sounded risky but fascinating, so our wilder side won and we chose Flutter. We wouldn’t hesitate to do it again.

I strongly recommend any junior developer to play and explore Flutter possibilities before beginning any huge project – even this process of learning can be really delightful.

From my perspective of Project Manager who is into UX Design, I am still missing more communication from the Flutter team to explain other colleagues (Product / UX designers) the numerous possibilities this framework has, and why it is worth to apply Flutter to some ideas (advantages in deploying time, good UI resources, etc.).

I think that new technology and frameworks should be introduced not only to developers community but also to the people who deal with both Design and IT roles every day, so also to visual professionals who should participate in choosing technology and tools.


Finance

Cryptomaniac Pro

cryptocurrencies signal app

The app gives users information about the most accurate cryptocurrency signals, news about cryptocurrency, the service record of the portfolio and more.

top native mobile apps made with flutter
top native mobile apps made with flutter
top native mobile apps made with flutter
top native mobile apps made with flutter

App on Google Play

Ardiansyah Putra
Creator of Cryptomaniac Pro, Mobile Developer at Eunomia International

I can tell everyone that Flutter is a really good choice, it saves a lots of time on development cycle, we could deliver our app to our client within less than 2 months which is 40% faster than development with native SDK as we did before, and certainly without sacrificing quality.

Some advantages of using Flutter that I did not get in other technologies are:

  • Speed in development
  • Performance that feels like native
  • Pixel perfect, we don’t need to worry about how Flutter appears on various devices
  • The security of the source code is maintained because the Dart code will be compiled into native binary

We have finished 4 apps published on Google Play store and we are currently building another app that will be released on March 2019, all of those apps are built with Flutter.


Education

School planner

app for students & teachers

Full-fledged homework management app for students and teachers. Allows users to add information about their timetable, homework, grades, exams, tests, enables sharing notes about them with other students, and set reminders.

App on Google Play

Felix Weuthen
Creator of School planner app

I think every developer should at least take a look at Flutter. It is an excellent opportunity to build more reliable, fast, and beautiful apps. I am not good at designing but with Flutter it is simple.

I started working on the School planner app almost 3 years ago – first with Android Studio and Java, later with Kotlin. It worked well, but when I improved the app, things got more and more complicated. For example, it took around 3 minutes for Gradle to build with the restart of the application.

Last year in February I discovered Flutter and rewrote the app from scratch. I have to say it was the best decision I could have made. It is just amazing that I can reload the app in less than a second. But there are many other great advantages.

One of the biggest is the cross-platform aspect. I can release the same app with the same features to Android and iOS. This is very important for a social app like mine. The networking effect was huge and increased the popularity and downloads rate of the app. In a few weeks, I will reach the 50k downloads in the Play Store with a peak of over 4.000 active users daily. This is a milestone for me.

While Dart as a language itself might have seemed a step backward compared to Kotlin, I still like it way more than Typescript or even Javascript. Dart is simple and logical, and async programming is very intuitive with Futures and Streams. But features like Null-Safety would be very appreciated.


Maps and navigation

Station La Moins Chère

fuel price app

SLMC allows residents of France to quickly check the price of fuel nearby or near the city a user is searching. The app is available only in France.

Apps Made with Flutter
Apps Made with Flutter
Apps Made with Flutter
Apps Made with Flutter

App on Google Play

Simon Gradaive
Creator of SLMC, Web and Mobile App Developer

Building the app with Flutter was a good choice for many reasons. I was able to deliver MVP much faster than I expected and I never had to worry about the performance and fluency of the app. It worked nice from the very beginning, even on budget phones. Debugging was simple, and the integration in Android Studio is nearly perfect.

If you are a React Native developer and hesitate to use Flutter, you should know that the most significant change you can expect is the lack of JSX (or I should say: DSX – for Dart). Dart is intuitive and easy to learn, so it won’t be an obstacle. I didn’t know this language before but after a few days of developing with Flutter, I already preferred Dart to JS.

In summary, I had a very positive experience with Flutter. As much as I like React Native, I will use Flutter for my next projects (if it’s not a game app).


Lifestyle

Pawfect Match

app for animals adoption

Another interesting Flutter app example is Pawfect Match – the app for matching users with homeless animals in their area (UK). It brings together adoptable pets from shelters across the country and gives them the best possible chance of finding their new homes.

App on App Store | App on Google Play | Website


Travel

Flydirekt

app for standby travelers

With this app built with Flutter users can find direct flights all over the world and get availability forecast & loads to prepare for their standby travels.

top native mobile apps made with flutter

App on App Store | App on Google Play | Website


Business

advertising manager app

Another example of an app made with Flutter is the Google Ads app which helps its customers keep their ad campaigns running smoothly on the go. They can view campaign stats, update bids and budgets, get real-time alerts and notifications, call a Google expert or act on suggestions to improve their campaigns.

top native mobile apps made with flutter
top native mobile apps made with flutter
top native mobile apps made with flutter
top native mobile apps made with flutter

App on App Store | App on Google Play


AppTree

enterprise app client

AppTree is an enterprise app client that enables you to use common business app functions such as labor entry, audits, data collection, inspections, requests, workflow and approvals with existing enterprise software data.

App on Google Play | Developer website


Last but not least insight from a Flutter expert

Before we sum up this article, we want to put some icing on the cake. We would like to share with you one final insight from an expert. He is the Founder and President at Very Good Ventures – company that developed a selection of Flutter apps – one being for Hamilton Musical.

David DeRemer
Founder & President at Very Good Ventures

Flutter is absolutely a choice that every CTO or mobile developer should be considering. It is particularly well suited for new apps (i.e., it’s not as good for integrating into existing app projects) that don’t require deep hardware or OS integrations.

First off, most users don’t know that a Flutter app is not fully native. Previous cross-platform frameworks didn’t feel native enough. Flutter’s renderer is very fast and it does not have the same limitations for performance or security that we feel plague other frameworks (looking at you, JavaScript).

Cross-platform solutions have been around for a long time, but Flutter is the first one to do it right. It is not perfect, but it is worth consideration alongside native for all new apps at this point. In our experience, when we compare the pros and cons of Flutter versus native, Flutter wins every time (except games and apps that require unsupported hardware integrations as a core feature).

Since we shipped our first Flutter app, we have only used Flutter ever since. Nobody on my team would rather write an Android app in Java or Kotlin at this point. In fact, they might threaten to quit if we forced them to do so. Flutter is actually fun for developers.

Consider that – not only do you get two apps, but you get it done faster and with a happier dev team. The recent announcement of Hummingbird and Flutter Desktop Embedding is a major game-changer. In fact, we were able to run an existing Flutter app as a desktop Mac app with no code changes in about 10 minutes. That blew our team’s minds as they realized they are all now desktop Mac developers because of Flutter.

The biggest downsides to Flutter are a) platform risk, b) size of the developers’ community. While Flutter is an open-source project, if Google decided to no longer support it, it would be catastrophic. The second issue is the size and experience of the developers’ community. The labor pool is just very small at the moment. Dart is not a very common language, so it doesn’t have the existing developer community that React Native has. On the other hand, the good news is that the community is growing exponentially.

Additionally, Flutter is still very early, and so there are occasionally some bumps in the road and bugs that we find in the framework. But those get fixed quickly, and it has grown leaps and bounds since we originally started working with it two years ago.

In summary, we think Flutter is the future.


Wrap up

As you can see, many of the experts we have interviewed believe that Flutter is the future of mobile app development. Not only can Flutter speed up the development process, but it can also reduce project costs.

That said…

  • If you want to develop an app with minimal UI
  • If your app is specifically designed for just one platform
  • Or if your app requires multiple interactions with an OS

Then, it is probably better you choose native app development.

Still, before you make any decisions, be sure to check Dart Pub as there’s a genuine possibility that someone, somewhere, created a custom package just for you – with your OS-specific code.

Since Flutter 1.0 is announced, it is worth to see by yourself whether it is a good solution for your projects. We hope that the stories in this article will help you come to the best conclusion.

Continue reading about Flutter:

Good luck with your work!

Many thanks to all developers and business owners who contributed to this article.

FREE EBOOK ABOUT FLUTTER

In a 132-page ebook you will find full, original stories by business owners and developers actively working with Flutter

Get Ebook Now

Resources

The post Top Apps Made with Flutter – 18 Stories by Developers and Business Owners appeared first on Droids On Roids.

]]>
https://www.thedroidsonroids.com/blog/apps-made-with-flutter/feed 6
Top 7 Mobile Commerce Platforms in 2020 | Guide for Business Owners https://www.thedroidsonroids.com/blog/top-7-mobile-commerce-platforms-in-2020 https://www.thedroidsonroids.com/blog/top-7-mobile-commerce-platforms-in-2020#disqus_thread Sun, 29 Mar 2020 11:36:12 +0000 https://www.thedroidsonroids.com/?p=24111 Learn what a mobile e-commerce platform is, what are the most popular m-commerce platforms, and why it’s ultimately better to invest in custom software development.

The post Top 7 Mobile Commerce Platforms in 2020 | Guide for Business Owners appeared first on Droids On Roids.

]]>
What are the fastest-growing, top mobile commerce platforms? As more and more businesses start to take advantage of mobile e-commerce software, providers need to deliver working solutions as fast as possible. That’s why many companies decide to use mobile commerce platforms.

Such platforms deliver web and mobile applications in an integrated environment that helps business owners leverage their digital presence. There’s no denying that such platforms speed up the process of building mobile e-commerce apps. But as out-of-the-box solutions, they come with significant limitations.

Read this article to learn:

  • what a mobile e-commerce platform is,
  • which ones are the fastest-growing, top mobile commerce platforms these days,
  • why it’s ultimately better to invest in custom software development.

In a moment we will explain what mobile commerce platform is. If you want first to learn basics about mobile commerce, check on mobile commerce definition and m-commerce types.

What is a mobile eCommerce platform?

A mobile eCommerce platform provides specialized mobile functionalities ranging from mobile ticketing and vouchers to loyalty cards, money transfers, delivery, and banking. In-app mobile payments and advertising are other aspects of mobile e-commerce platforms that allow businesses to deliver mobile commerce capabilities directly to consumers easily.

In short, mobile commerce platforms provide features that facilitate mobile commerce app development.

Here’s an example:

Brick-and-mortar store owners who want to take advantage of mobile e-commerce can use such platforms to implement location-based services easily, push notification, or barcode scanning. That’s how they can improve the experience of customers shopping in the store.

To learn more about stats and situation of the mCommerce market, read the article about mobile commerce trends and its future.

7 top mobile commerce platforms

1. SAP Hybris

This well-known platform delivers a number of digital transformation capabilities such as context-driven marketing, customer data management, and unified processes for omnichannel e-commerce. SAP hybrid commerce is a solution that helps companies target engage their customers regardless of where they’re located. It also offers a wealth of customer insights and impressive scalability.

The tool enables businesses to reach customers at every point in their buyer journey. Companies can also respond to real-time data to deliver the best possible customer experience. It also offers powerful API integration capabilities for extending its functionality. Users can benefit from advanced mobile commerce setup and optimization, as well as data management tools that allow tailoring product listings to particular customer segments.

2. Pontis

This platform is one of the global leaders in digital customer engagement solutions. Pontis helps businesses to engage with their individual customer segments. Since the company has many years of experience in driving digital customer engagement, the platform helps to achieve similar business results and improve strategic KPIs, such as boosting customer satisfaction and loyalty.

Users of the platform will find real-time Big Data capabilities, predictive modeling based on machine learning, real-time dashboards, and Business Intelligence reporting, as well as insights into real-time customer statuses.

3. Salesforce Commerce Cloud

Another popular mobile commerce platform is Salesforce Commerce Cloud. It unifies the customer experience and helps businesses to streamline operations from purchase to post-sale. The platform comes with a number of capabilities organized into several categories like operations, experience, and intelligence:

  • Experience is an area that helps users to orchestrate the pricing, products, content, and promotions to engage users best.
  • Operations, on the other hand, comes with capabilities that help to improve the core functions across all the channels – for example, by connecting back-office functions to order fulfillment.
  • Intelligence is all about data-driven business insights and customer personalization.

All in all, these capabilities can be used to power business from practically every channel, be it a web application, mobile app, or a brick-and-mortar store.

4. GPShopper

This platform is used by retailers and brands to build a host of solutions:

  • e-commerce and loyalty integrations,
  • content management systems (CMS),
  • analytics suites,
  • and many others.

GPShopper comes with prebuilt commerce integrations that allow businesses to accelerate their mobile app time-to-market when it comes to delivering both iOS and Android applications.

The software features customizable reporting dashboards where you can see cross-channel metrics and can always dig deeper into the data. The tool is integrated with analytics from providers like Google. It also comes with mobile commerce app features such as push notifications and social media integrations that allow companies to connect with customers in the most profitable way.

5. IBM Mobile Commerce

IBM’s platform is a framework for e-commerce that includes functions such as marketing, customer service, sales, and other functionalities in an integrated package. The unified platform works for the B2C (Business to Customer) just as well for the B2B (Business to Business) context.

By using the platform, companies can send personalized marketing messages and promotions to their customers, let customers carry out side-by-side product comparisons, offer store location information and get an accurate view of all the orders and availability.

All in all, IBM Mobile Commerce focuses on helping companies to provide their customers with an excellent experience.

6. Oracle Commerce Platform

The mobile e-commerce platform from Oracle provides scalable and battle-tested support for businesses looking to deliver an omnichannel experience. It helps business owners to manage omnichannel experiences, deliver personalization, and control promotions, content, and navigation.

All in all, businesses can use the platform to quickly launch sites for new brands, markets, or even individual campaigns. By targeting new locations and segments, it offers companies a chance for international expansion. Users can take advantage of B2B and B2C modules that support different selling models.

7. Kony Mobility Platform

This is an integrated platform for mobile app development, and more. It supports the entire software development lifecycle (SLDC) application and helps businesses to quickly design, build, deploy, and manage multi-as application experiences.

The key strength of this platform is its speed. It allows companies to compete on the mobile scene by quickly delivering applications on a wide range of devices and systems. You can use the platform to get to market faster and reduce the total cost of ownership for digital assets.

The Kony Visualizer is an intuitive development environment for prototyping and building mobile apps that allow creating a single user interface definition for customer experiences delivered on different platforms.

To sum up:

Top mobile commerce platforms

As you can see, companies can choose from many different mobile e-commerce platforms that allow them to quickly jump on the mobile bandwagon and create a mobile commerce apps.

However, out-of-the-box solutions come with significant limitations. That’s why most businesses decide to choose custom mCommerce application development.

Why is a custom mobile e-commerce app the best solution?

The primary benefit of custom mobile development is that you get a fully personalized solution that matches the unique business needs. The app will address all of the requirements and preferences of your target audience instead of catering to a large group of customers who all have different requirements.

Benefits of custom mCommerce app development

  • Integrations with existing software – tailor-made apps take into consideration the business software companies are currently using. You can be sure that your app will be well-integrated with other solutions.
  • Scalability and flexibility – custom mobile applications are developed with future development in mind. That’s why you can scale them up easily and add more functionalities as your target market changes.
  • Higher efficiency – custom apps are perfectly suited to match the demands of your business. Instead of investing in several apps, all it takes is building a single application that supports the customer journey from start to finish. Also, bespoke e-commerce apps will match your working style, enhance the productivity of your employees, and boost the ROI.
  • Outstanding security – a custom-made app will boost your data security system since the provider will ensure that all of the appropriate security measures are in place.
  • Better customer experience – tailor-made applications allow tapping into the desires and needs of your customer base. For example, you can use data analytics to send personalized updates and provide your customers with a range of other functionalities they need, like integrations with social media channels.

Learn more about the best practices in mobile commerce app development, and check out the list of key e-Commerce mobile app features.

Top mobile commerce platforms

Success story: CCC mobile commerce app

CCC is one of the largest footwear companies in Central Europe. To expand its reach and deliver a mobile experience to its customers, CCC decided to create a mobile e-commerce app that would perfectly capture the requirements of its target audience.

At Droids On Roids, we specialize in mobile app development, and our teams delivered a number of e-commerce applications before.

CCC – top mobile commerce app example

In this project, we were responsible for developing a unique UX/UI design for the application, delivering a working application on time, and maintaining the project.

The mobile app comes with a diverse range of features that engage users in different ways. Among others, users can:

  • Order products online and pick them up in the store,
  • Check product availability in CCC stores,
  • Join the CCC loyalty club,
  • Stay up-to-date with promotions and trends thanks to personalized notifications,
  • Find the nearest store easily thanks to the geolocation functionality.

The application won the prestigious E-commerce Poland Awards 2019 in the category Best on Mobile.

Conclusion

There’s no denying that speed and time-to-market matter a lot today. That’s why companies are tempted to use mobile e-commerce platforms to deliver mobile experiences to their customers and start leveraging mobile analytics as quickly as possible.

However, when building mobile commerce applications, businesses need to act carefully. After all, one misstep might lose the trust and loyalty of your customer base.

y providing a smooth, reliable, and engaging experience in your mobile app, you will gain new followers and deliver a fantastic experience on platforms your target audiences spending time. That’s why it’s worth cooperate with a custom mobile commerce app development company instead of going for an out-of-the-box solution.

Need more information about how to build a tailor-made mobile commerce app? Don’t hesitate to get in touch with us. Our teams have delivered m-commerce applications to customers across different industries. We have plenty of experience to help you provide value to your target audience.

The post Top 7 Mobile Commerce Platforms in 2020 | Guide for Business Owners appeared first on Droids On Roids.

]]>
https://www.thedroidsonroids.com/blog/top-7-mobile-commerce-platforms-in-2020/feed 0
How to Build a Mobile App? | Guide for Business Owners https://www.thedroidsonroids.com/blog/how-to-build-a-mobile-app-guide-for-business-owners https://www.thedroidsonroids.com/blog/how-to-build-a-mobile-app-guide-for-business-owners#disqus_thread Sun, 29 Mar 2020 11:08:14 +0000 https://www.thedroidsonroids.com/?p=24105 Learn how to build a mobile application from scratch. Understand the mobile app development process and decide who will build your app.

The post How to Build a Mobile App? | Guide for Business Owners appeared first on Droids On Roids.

]]>
To deliver outstanding customer experience, businesses are now investing in mobile apps. If you have an amazing idea for a new digital product, you’re probably wondering how to build a mobile app that attracts thousands of users.

You’re in the right place. In this article, we share all of the steps you need to take when building an app, from revising your idea and understanding how mobile apps are built, to deciding who is going to develop it for you.

If you are a beginner in the area of mobile app development, I recommend you to check on the article What is a mobile app? Basics for businesses.

Ready to start building your unique mobile application? Let’s dive in!

Table of contents

  1. Understand the process of building an app

Phase 1: Planning and discovery

Phase 2: Development

Phase 3: Maintenance, support, and further development

  1. Build a mobile app strategy
  2. Decide who will build your app

Building an app in-house

Outsourcing mobile development

Conclusion

1. How to build a mobile app – understand the process

Before joining other business owners on the quest to turn your idea into a mobile app, it’s essential that you learn and understand the common industry practices in mobile app development.

Depending on the team you hire and the complexity of your app, the timeline of starting the project to getting the app launched in an app store might differ. However, each project will follow a similar trajectory. 

Here are the most important phases in mobile app development you should know before jumping on the mobile bandwagon.

Phase 1: Planning and discovery

During this phase, you need to strategize and define the experience your app will deliver to users. An important deliverable of this phase is a solid product roadmap. Building an app without establishing these elements, in the beginning, is very risky.

Create a strategy

The first step is understanding the requirements of your business:

  • What are your business goals?
  • Who are your target audiences?
  • Which features your app will include as a priority?

You need to specify all of this information before creating an app. It will bring you closer to finding your product-market fit and help you avoid the risks of building a mobile application nobody needs or wants to use.

Focus on user experience 

Next, it’s time to think about the particular experience you want to deliver to your app users:

  • What kind of problem will the app solve?
  • What are the common pain points of your target audience?
  • What sort of goal will it help users to achieve?

The key deliverable of this stage is a solid architecture that includes a well-defined user journey and sketches of the user experience delivered screen by screen. At this point, it’s also smart to invest in creating high fidelity mockups and prototypes that you can test before the development phase begins.

Develop a product roadmap

Once you gain a better idea about what your app is going to achieve, it’s time to come up with a detailed technical requirements document. A part of it should be a UX specification too.

That type of product roadmap should include everything you need to create the app. That way, it will help you to estimate the work required to complete the project and set the direction for short- and long-term development.

If you team up with a software development agency like Droids On Roids, you can be sure that the entire process of planning and execution is carried out by a cross-functional team that consists of business analysts, UX/UI designers, software developers, QA specialists, and product development experts. They will all come together to help you crystallize your idea and make sure that your app finds a product-market fit.

Business Analyst

Ireneusz
Business Analyst at Droids On Roids

Phase 2: Development

Once the planning phase is complete and you have a well-defined product roadmap, as well as early designs (mockups or prototypes), it’s time to build your solution.

We should start with the app development kick-off & project setup – these are responsibilities of your development team, but you as a Product Owner take part in project kick-off.

During this phase, the development team will write the code and realize your app idea. The duration of this phase will depend on the number of features and complexity. 

For example, if your app is based on just offering users information and providing them with a few interactions, the team might be able to build it in less than a month. However, more complicated apps with geolocation features, social logins, dynamic content, or a user database may take much more time.

Note that testing will take place during the development phase as well. It’s essential that the team gets an opportunity to test the app as soon as possible. In fact, involving Quality Assurance professionals right from the start is a smart move. That way, you will remove bugs or errors at the earliest stages of development, ensuring that they don’t become a huge issue further down the road.

Also, making final design adjustments is a good idea at this point. That way, you’ll avoid building an app that doesn’t deliver the experience you were looking to provide. 

Phase 3: Maintenance, support, and further development

Once your app has been developed and approved by the app store, it’s time for the launch!

You might be thinking that you don’t need to do anything from now on. You’re wrong. 

Once your app is downloaded and used by real people, it’s smart to listen closely to their feedback. This will help you determine which features you should build next or what you should change in your app to deliver an even better experience.

Also, it’s important that you implement ongoing testing to make sure that the app works correctly. Naturally, some of the updates will be part of your product roadmap you developed back in Phase 1. So, you have a solid foundation to build upon. Check with your users whether additional features would bring them value. Maybe it’s time to switch to something else?


Understanding the process of how mobile apps are built and seeing the best practices from successful mobile development teams is essential before you make your first move.

We hope that this section helps you understand the most common and widespread practices of developing mobile apps.

2. How to build a mobile app – create a mobile app strategy

What does it mean, exactly? That you will be formulating a strategy for your app development project.

Why is it worth your time? If you do it at this point (before launching the development work), you won’t miss any critical steps along the way and avoid making mistakes that might cost you a lot.

A mobile app strategy comes with two benefits:

1) You will know what questions you need to answer before building your app 

2) You will identify what results you’re looking to achieve at the end of the development process. 

Here are the most important questions you need to ask yourself when building your mobile strategy:

a. Who are your competitors?

Are there any similar apps available on the market today? Who are your direct competitors, and what unique selling propositions they offer to customers? Remember that your competition might not always be a mobile app. For example, it could be another type of online digital product or even a spreadsheet.

b. How much will it cost to build my app?

How much does a mobile application cost in 2020? The answer to this question largely depends on who you hire to build your app. However, note that on top of the build cost, you also need to identify your other expenses (like support and maintenance).

Once you know that, compare your spendings to the hypothesized amount of money you can earn through subscriptions, in-app advertising, registration fees, and others. This is also the right moment to rethink the monetization strategy of your app.

c. What is the goal of my app?

What are you trying to accomplish with it? It’s important to articulate your goal clearly. It will serve as the foundation of your strategy. If you don’t identify your objective, you will be building just for the sake of building. Instead, it’s best to rely on a clear vision of what you want to accomplish. Every step you take will bring you closer to achieving that vision.

Your initial objective doesn’t have to be “building an app that competes with Instagram.” Instead, focus on this: You’re building a digital product for a given purpose – to solve a particular problem your users experience. Your objectives should be deeply rooted in what you’re planning to deliver to them, not in a competitor app you’re looking to beat.

Wojciech Szwajkiewicz - CEO and President of Droids On Roids

Wojtek
CEO at Droids On Roids

d. What are your key metrics and KPIs?

It’s smart to consider the type of metrics and Key Performance Indicators you’re going to measure. Choosing them wisely will limit the amount of effort it will take to measure and track all the potential metrics. And if you keep a close eye on your most important metrics, you will always get an accurate picture of your app’s performance.

What metrics should you consider measuring? 

  • The total number of downloads that indicate whether enough people are interested in your app to actually download it to their smartphones.
  • The number of monthly active users – this is the number of users who log in and take action inside your app.
  • Daily active users – the number of users who use your app every day
  • Churn rate – the percentage of users who delete or cancel your app every month.
  • The number of sessions – how many times do your users actually use your app?
  • Daily or monthly sessions – time how much time users spend using your app.

e. How will you inspire users to use your app?

This is one of the key elements you need to figure out before starting to build your app. How are you going to get users activated after they download your app? You need to inspire them to actually start using your app. People tend to download a new app, open it once, and then delete it or hide it in a folder, never to be used again. You need to convince them to stick around. Focus your initial sign up and onboarding experience on making that happen.

3. Decide who will build your app

This decision is based on many different factors, such as your timeline, budget, technical requirements of your app, and whether you want to build for iOS, Android, or both platforms.

At this point, many prospective business owners ask themselves this question:

Should I outsource the development work or build my app in-house? 

There are pros and cons to both approaches, so it’s important that you’re aware of them and choose the option that matches your unique situation best.

Building an app in-house

If you decide to build an app in-house, it means that you will be using an internal development team to make your idea a reality. You will have to first carry out recruitment, find the skills you need, and then oversee the process of building your app. This approach has its unique advantages, and a few drawbacks you need to know.

Pros of in-house development

Insider knowledge 

An internal team will know your organization better than a mobile app agency. It will know your brand voice, target audience, vision, goals, and competitors. All these insights are part of your DNA. It’s possible to pass them along through to an agency, but only after a long-term collaboration.

Streamlined process

Generally, approvals happen faster when everyone involved in the process is working from one location. Your entire team’s scheduling calendar can be easily synchronized and allow time for reviews. You won’t have to engage in a constant back and forth to find a time that works for everyone. Moreover, you can easily have a quick chat about a mobile app design decision with a team member.

Flexibility with revisions

This is a double-edged sword. On the one hand, developing a mobile app in-house offers you plenty of opportunities to be flexible with revisions. On the other, the potential drawback of this is that you might end up spending many hours tweaking and modifying your app features without making any real progress.

If you team up with a mobile development agency, you will typically be working with a budget. This constraint will inspire you to be more thorough during the planning stage and weigh the pros and cons of each revision carefully. Also, a development team will deliver features in every sprint, so you can decide to move on to the next feature instead of spending time on perfecting the previous one.

Wojciech Szwajkiewicz - CEO and President of Droids On Roids

Wojtek
CEO at Droids On Roids

Cons of in-house development

High cost

And that’s no matter where your business is operating. Finding qualified candidates is becoming a challenge in practically every region of the world. Moreover, new hires entail a process that takes a lot of time and money. The cost of hiring an individual includes job postings, interviews, training staff, and background checks.

And then comes the salary. In February 2019, the average salary of a mobile app developer in the United States amounted to $107,000. And this is just one role in a development team.

An ideal app team will involve developers (frontend and backend), a UX designer, a product manager, and a QA engineer. That number of people represent a very high paycheck. In addition, consider other costs such as unemployment, healthcare, and taxes – as well as overhead expenses such as hardware, software, and office space.

Finding talent is hard

The demand for IT specialists is at an all-time high. That makes it more challenging to find and hire the right professionals in practically every region of the world.

As a recruiter, you should also be able to assess technical skills accurately. Most of the time, you will have to pay for someone to do it for you. And that’s an additional cost.

When recruiting staff for your project, expect the entire process to last about 2-3 months. So, if you want to start working on your app as quickly as possible, building your app in-house might not make sense. After all, it will take a while for an employee to become an effective team member.

If you decide to team up with a software development company, you can be sure that the team knows how to collaborate most efficiently and can get started right away. Moreover, you won’t be spending your time, money, and resources on recruitment, training, or onboarding.

Wojciech Szwajkiewicz - CEO and President of Droids On Roids

Wojtek
CEO at Droids On Roids

b. Outsourcing mobile development

If you decide to outsource the process building of your app to a mobile app development agency, expect many advantages. However, outsourcing mobile development also carries some risks – prepare for them by reading our guide about the benefits and risks of outsourcing software development.

Pros of outsourcing mobile development

Established teams

Most mobile app development agencies offer teams of developers, designers, business analysts, Quality Assurance engineers, and project managers who have worked together on multiple projects in the past.

The main perk of hiring such a team is that its members can get to work much faster. They won’t have to integrate with a new team and go through the onboarding process. An in-house team will take the time to learn each other’s strengths and weaknesses. This will probably take place during your project, exposing it to unknown risks. These are all the things an agency team is already familiar with.

Experience

An agency that specializes in mobile development will have a far greater understanding of what you’re trying to do than a general app developer.

Such companies have streamlined processes that the tried and tested on many different app development projects. The most proficient agencies use various strategies to better understand the app requirements, business goals, and priority features.

Such development teams leverage their industry experience and knowledge of the latest trends to offer a productive perspective that comes from years of building projects similar to yours.

Lower cost

By hiring a mobile app agency, you will avoid all the costs that come with sourcing, attracting, recruiting, and onboarding developers. All of this is expensive and takes lots of time. You won’t have to pay any of the overhead costs, taxes, and all the other costs that come with maintaining full-time employees at your company.

Flexibility and scalability

A software development agency can easily add new members to your team to match the changing needs of your project.

If you’d like to address the new business requirement, you can have people working on it almost instantly. And once your project is over, the team can be reduced to provide only the support and maintenance services you need.

Achieving the same level of flexibility and scalability with an in-house team is just impossible. Hiring new members takes a lot of time. Firing them could ruin your reputation on the market.

Fast time-to-market

Once you formulate your app concept and decide that you want to build a development team, you will be looking at 2 to 3 months of delay in realizing your idea.

By outsourcing development, you can get started almost right away. You won’t have to onboard your team or create processes. There are no guessing games or learning about your mistakes in outsourcing. If you partner with an agency, you’re bound to accelerate the time-to-market of your app.

How to build a mobile application – conclusion

Building a mobile app is a process riddled with different challenges. Practically every step in your journey will help you to learn something new, rethink your strategy, and identify your goals better.

However, it’s also a very rewarding journey, and these projects bring a lot of satisfaction to app owners. Take the steps outlined in this article, and you’ll make sure that you’re building a product that has a market fit.

Why outsource app development to Droids On Roids?

At Droids On Roids, we have been delivering mobile app development services for 9+ years to companies operating across different industries. In total, we developed more than 130 mobile and web applications for clients from all over the world, including countries such as the USA, UK, Norway, Switzerland, and Australia.

We follow a six-step Quality Assurance process to provide partners with the best quality of development services. Our team follows the Scrum framework and other industry standards to ensure we deliver the highest business value.

If you’re looking for an experienced mobile development team, get in touch with us. We have the talent and experience you’re looking for.

The post How to Build a Mobile App? | Guide for Business Owners appeared first on Droids On Roids.

]]>
https://www.thedroidsonroids.com/blog/how-to-build-a-mobile-app-guide-for-business-owners/feed 0
Top Custom Software Mobile and Web App Development Companies from Poland – Grouped by Mastered Technology https://www.thedroidsonroids.com/blog/top-custom-mobile-and-web-app-development-companies-from-poland https://www.thedroidsonroids.com/blog/top-custom-mobile-and-web-app-development-companies-from-poland#disqus_thread Sun, 29 Mar 2020 11:05:10 +0000 https://www.thedroidsonroids.com/?p=10266 Based on nine years of experience in the business, we have listed top mobile and web app development companies that deliver great products.

The post Top Custom Software Mobile and Web App Development Companies from Poland – Grouped by Mastered Technology appeared first on Droids On Roids.

]]>

Table of contents:

  1. Serverless
  2. NodeJS
  3. vue.js
  4. Flutter
  5. Go
  6. Reactive programming
  7. Kotlin
  8. PWA
  9. TensorFlow
  10. React/React Native
  11. IoT Apps (Internet of Things)
  12. Android Things
  13. Blockchain
  14. AR/VR/MR
  15. Microservices
  16. Blockchain

Many companies consider outsourcing development to Poland, or generally Eastern Europe, primarily because of developers price-quality ratio.

The fact is that Polish companies deliver great software products for clients from USA, UK, Germany, Switzerland and Nordic countries.

Based on nine years of experience in the business, we have listed top mobile and web app development companies that deliver great products.

Verified companies grouped by mastered technologies

1. Serverless

Serverless Outsource Your Mobile App Development to Poland

Suggested company: Droids On Roids

2. NodeJS

Node.js Outsource Your Mobile App Development to Poland

Node.js has built one of the largest ecosystems in the world. Virtually most famous and well-known companies, such as Uber, Linkedin or Medium, use node.js. There are millions of packages and millions of people in the community, so it should be pretty easy to find a solution to any given problem and a development team with node.js knowledge.

Suggested company: MonterailDroids On Roids

3. vue.js

Vue.js Outsource Your Mobile App Development to Poland

Vue.js is a lightweight JavaScript-based framework for building web user interfaces. It is designed to be highly adaptable. The main advantage of vue.js is excellent integration with HTML. It has become popular due to its simplicity and ability to be quickly learned by developers.

Suggested company: DivanteMonterail, Ratio Web, Naturaily

4. Flutter

Flutter Mobile App Development Poland

Flutter is a mobile app SDK for iOS and Android. It allows users to write an application once and run it on both platforms.

Suggested company: Droids On Roids, Miquido

5. Go

Goland Mobile App Development Poland

Go is a compiled programming language designed by Google. It combines the performance of low-level languages with high-level brevity. It also has a highly growing number of developers in the community. A couple of the largest and most famous companies in the world, like Dropbox, Docker, BBC, and even Apple, use Go.

Suggested company: Appliscale, GogoApps

6. Reactive programming

Reactive Programming Poland

Reactive programming (widely known as Rx) is a programming paradigm related to data streams. Libraries from the Rx family are available for virtually all common programming languages. There are a huge open-source community and lots of content available on the internet.

Suggested company: Droids On Roids,EL Passion,

7. Kotlin

Kotlin Mobile App Development Poland

Kotlin is a modern programming language. It has full interop with Java and Android. It is also the new official language for native Android apps and it can also be compiled to JavaScript. Due to its compact syntax, it is usually easier, faster (and cheaper) to develop the same functionality in Kotlin than in Java.

Suggested company: Droids On Roids, EL Passion, Netguru,

8. AI & Machine Learning

Artificial intelligence is an ability to maximizing the chances of successfully completing some tasks by machines. With Machine Learning, they can constantly improve performance and/or accuracy. AI and ML are widely used for processing large amounts of data e.g. images, voice, or videos. It has become broadly supported by Android and iOS cores.

Suggested company: Tooploox, SoftwareMill

9. PWA

Progressive Web Apps are websites that act similarly to native mobile apps. They can be quickly installed by users and can work offline.

Suggested company: Divante, MonterailNetguru

10. TensorFlow

Tensor Flow Mobile App Development Poland

TensorFlow is a library for machine learning, dataflow programming, and neural networks. It is suitable for AI tasks like image or voice recognition.

Suggested company:  Tooploox

11. React Native

React Native Mobile App Development Poland

React is a JavaScript library for building user interfaces. ReactNative is an extension allowing to use of React for mobile app development. With React Native, it is possible to write an app once and build it for both Android and iOS. The performance of such an app is much closer to truly native apps than using hybrid frameworks like Cordova. React and React Native are open source products from Facebook and have a large community.

Suggested company: Callstack 

12. IoT Apps

The Internet of Things is a wide range of devices connected to the internet. They are often accessed by users from their mobile devices. Such devices connected to the internet can be remotely controlled by users.

Suggested company:  Droids On Roids

13. Android Things

Android App Development PolandAndroid Things is a base for building IoT projects (devices + systems + apps). It consists of an operating system as well as an SDK and reference hardware. Android Things allows for using the well known operating system and its frameworks, instead of custom embedded solutions. The same team can develop a mobile app and onboard device software.

Suggested company: Droids On Roids, Polidea

14. Blockchain

blockchain app development poland

Blockchain is a chain of verified records (blocks). They can be used to store various kinds of transactions. Blocks are secured via cryptography and replicated to all the network nodes, making it impossible to alter them in the future. Blockchain is widely used by cryptocurrencies but it is also suitable for other cases when data cannot be altered or faked, such as contracts, land registration, and so on.

Suggested company: Pragmatic coders

15. AR/VR/MR

In Augmented, Virtual and Mixed Reality, real-world objects coexist with artificial ones. For example, you may see 3D virtual elements inside a piece of paper, which is itself flat in reality. AR/VR/MR apps are very attractive and give users great, immersive experiences.

Suggested company: 3R STUDIODroids On Roids

16. Microservices

In Microservice Architecture, components are highly decoupled. Small parts are easily testable and exchangeable. Due to loose coupling, updates and changes in each, microservices are cheap and fast when compared to monolithic architectures.

Suggested company: DivanteDroids On Roids

Wrap up

In our opinion it is worth considering outsourcing your mobile app development to Poland.

The quality-price ratio is an important motivator, but it’s not the only one.
In Poland, you can find many software houses using the hottest technologies in a reasonable price.

If you want an app that will be successful and outstanding, the Polish direction is the right direction.

The post Top Custom Software Mobile and Web App Development Companies from Poland – Grouped by Mastered Technology appeared first on Droids On Roids.

]]>
https://www.thedroidsonroids.com/blog/top-custom-mobile-and-web-app-development-companies-from-poland/feed 0