Showing posts with label flutter mobile apps. Show all posts
Showing posts with label flutter mobile apps. Show all posts

Tuesday, November 30, 2021

How To Secure Flutter Mobile Apps?

 

How To Secure Flutter Mobile Apps

Day by day the popularity of flutter is increasing among developers and entrepreneurs. Flutter has emerged as one of the leading and popular cross-platform app development frameworks because of its integral capability to deliver best native user experience, faster development through code reusability, faster app testing and deployment through high reloading features etc. And when it comes to app development, biggest concern for programmers and customers is security. As most people use mobile apps for shopping, ordering food, and money transactions, it becomes essential to secure your app. Hence here we came with some tips to secure your flutter app. Let’s have a look. 

Know the latest features of Flutter 2.5 at- What’s New In Flutter 2.5 And Dart 2.14?

How To Secure Flutter Mobile Apps?

Flutter logo

1. Secure CI Infrastructure-

You should know what’s going on in your VM’s and workflows depending on whether your CI infrastructure is self-hosted or using services like Github actions.

Updates-

So as to ensure your apps are running in a secure environment, you must keep your VMs up-to-date or be on a lookout for security vulnerabilities.

Secrets-

You should not commit API keys or related sensitive data in your code, rather you add them on secrets settings of your project. Other services such as Bitrise provide the same option to store secrets.

2. Secure Developer Identity-

Files such as keystore, keystore.properties, Google service account or any secrets that can reveal developers identity must be encrypted at all times when tracking in repository.

Create a directory and use GPG to encrypt it.

cd android
gpg --symmetric --cipher-algo AES256 android_keys.zip

Encrypt sensitive files, for example, key.jks and keystore.properties

Ignore and don’t keep track of unencrypted sensitive files.

# Ignore Android keys
key.jks
key.properties
service_account_key.json
Android_keys.zip

3. Secure User Data-

PII(Personally Identifiable information) is the most critical data that you don’t want to store on your apps, because unfortunately,if revealed, the company is in big trouble. But there are some cases where PII is required, for instance, for offline-first apps. Whenever required, you can use flutter_Secure_store to store PII or other sensitive data like auth token.

In short, Flutter secure storage is a package that makes use of Keystore for android and Keychains for iOS. Both of them are considered a standard in terms of security-sensitive data to user’s mobile devices.

Caching-

To store sensitive data other than PII, it will be better to use Hive for performance gain, though it needs more setup. It uses AES-256 encryption that helps you to secure the data of users from unwanted exploit or tampering. 

Tip- To secure the users data, don’t store it in plain text.

4. Restrict Network Traffic-

Generally the apps are connected to the internet, whether to a third-party service provider or to their own servers. Also, the app exchange carried out on a Transport secure layer (TLS) to provide a secure connection between mobile apps and your servers.

Trusted network-

Way to restrict network traffic or connection to an unsecured endpoint is via explicitly whitelisting your domain.

For Android:

res/xml/network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config>
        <domain includeSubdomains="true">example.com</domain>
        <trust-anchors>
            <certificates src="@raw/my_ca"/>
        </trust-anchors>
    </domain-config>
</network-security-config>

For iOS-
ios/Info.plist

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <false/>
  <key>NSExceptionDomains</key>
  <dict>
    <key>cocoacasts.com</key>
    <dict>
      <key>NSIncludesSubdomains</key>
      <true/>
      <key>NSExceptionAllowsInsecureHTTPLoads</key>
      <true/>
    </dict>
  </dict>
</dict>

Certificate pinning-

Implement certificate pinning for apps to restrict the secure connection to specific certificates. It ensures that the connection between apps and servers is authentic and trusted. Without certificate pinning, hacker can eavesdrop or tamper data when on transit using hacked or self-signed certificates.

5. Secure API Keys-

There are various formats of keys, but generally it is in the form of a String. If it is not encrypted or obfuscated, it will be easier for hacker to use your API keys.

Read More


Friday, September 10, 2021

5 Best BaaS For Flutter App Development

 


Software development Kits or SDK are necessary resources for high quality websites and application development. It has a wide range of important tools, including libraries, documentation, processes, sample code and guides for developers. Flutter is one of the most popular SDK option as it offers lots of convenient BaaS features and integrations for users. Baas development model needs API creation before the android and ios app development. It is a stress-free models as a service providers take all the hassles of backend and infrastructure. There are some best Baas that you can use for your flutter app development in 2021. But before digging to best Baas for flutter, let us see the overview of BaaS.

What Is BaaS Or Backend-As-A-Service?

BaaS, Backend-as-a-service is a cloud model that helps developers to automate backend development functions and obtaining hassle-free management of cloud infrastructure. BaaS service providers are responsible for server execution and maintenance. There are several tools that developers can use and makes code for the backend and accelerate the development. Some of the features contain APIs, data management, push notifications and file storage. In BaaS, SDK and APIs are used to connect apps directly to the cloud backend. BaaS development model needs creation of API before development of android and ios apps.

Benefits Using Of BaaS-

1. Hassle-Free-

It is considered a hassle-free service model because of its non-requirement of developers to do any hosting and maintenance. Service providers just need to handle all the actions. 

2. Flexible- 

BaaS provides full flexibility as comparison to many other cloud services. It is convenient for app development and for API deployments and web development.

3. Saves Time-

BaaS allows rapid development as users don’t need to run or manage the cloud servers. 

4. Scalable-

It provides maximum scalability to mobile app developers. Users can scale their resources of BaaS whenever the necessary. 

Top 5 BaaS For Flutter Application-

1. Firabase-

Firebase logo

It is popular BaaS platform from Google, which provides a wide range of functions and components that help in the web development and mobile apps. Firebase is a platform with a NoSQL database that follows protocols of JSON to carry data storage work. It includes some real-time NoSQL database, analytics, REST API, scalable hosting and Test lab. It is free but you can go for paid plans. Firebase is great for collaborating with other users and also doesn’t require servers to build apps.

Important Features Of Firebase-

  • REST API
  • Analytics
  • Real-time databases(NoSQL)
  • Scalable hosting
  • Test lab
  • Dynamic links
  • Cloud storage

Pricing-

  • Free
  • You can go with paid plans

2. Backendless-

backendless logo

Backendless is mobile backend-as-a-service (MBaaS) which offers lots of tools to enable simple and rapid deployment. It provides dedicated, cloud-based managed servers to the users and offers user-defined APIs. It’s APIs are brilliantly developed for all the levels of developers. It is codeless and offers API service solutions for both web and mobile apps development. One of the best feature of backendless is its ability to automatically generate APIs for your application. Backendless allows users to run services on their servers. 

Features-

  • Visual programming
  • Real time database
  • Notifications
  • API services
  • Hosting
  • Codeless
  • Caching

Pricing-

  • Free
  • Paid version at $ 25/month

3. AWS Amplify-

It is a set of tools and services used to help front-end web and mobile developers to build scalable full stack applications. With Amplify, you can configure app backend and connect app in just a minute, deploy static web apps in few clicks and easily manage app content outside the AWS console. It supports popular web frameworks including Javascript, Angular, React, Vue, Next.js and mobile platforms including iOS, Android, Ionic, Flutter, React Native. AWS offers security and agility for your global user base. Users can experience fast access to your resources and advanced functionality with backend service.

Features-

  • Datawarehouse
  • Analytics
  • Notification
  • GraphQL and REST API
  • Authentication
  • CI/CD
  • Manage content

4. Parse-

Parse logo

It is one of the leading open-source Backend as a Service (BaaS) frameworks in the world today. It is used for creating application backend, and for web and mobile apps. Parse supports front-end technologies like Java, Ionic, Swift, react native and Xamarin and a wide array of data that ranges from text to strings, images, video, audio content and so on. The platform has visual dashboard that allows developers to perform various backend functions. 

Features-

  • Authentication
  • Notifications (Email and Push-Notifications)
  • File Storage
  • Database (SQL or NoSQL)
  • Cloud Code Functions
  • API (GraphQL and REST)

5. Back4App-

Know more at- https://solaceinfotech.com/blog/5-best-baas-for-flutter-app-development/

Thursday, January 9, 2020

Flutter 1.12 features that will rule 2020



Flutter came up with its newest stable version Flutter 1.12 on December  11, 2019. Developers incline toward Flutter for its smart features and the latest Flutter 1.12 supports some efficient functionality and features. Since its Flutter 1.0 version released in December 2018, Google Flutter has been developing and now, it has made a 5 stable releases. Flutter developers team, included high level functionalities and also features in flutter framework with support  for Game Controller and Android App Bundles, and launch of RangeSlider control feature. Also, from event highlights, Flutter for web goes for the beta, support for Adobe XD, MacOS to Flutter plugin for supernova, designer, and significantly more has declared in the Flutter Interactive event. Know the basics of Flutter at- What is Flutter? An about the joy of flutter.
Before exploring what’s new in the Flutter 1.12 version, we should discuss what Ambient Computing is:

What is Ambient Computing?

Knowing the fact that we interact with various ‘internet-connected’ devices daily, the Flutter development team has chosen to provide an environment that makes all services accessible across all devices. They switched from the concept of ‘Write Once, Run Anywhere’ to Ambient Computing. Ambient Computing is characterized as the collective devices that can be treated as an extension of one another for delivering a seamless experience. With this concept, the developers will no further need to choose which device to focus before starting with Flutter application development. They can create user experience that fits to every one of the devices and platforms also– be it mobile, desktop, smart homes, embedded devices, or smart watches. Now, as the core Ambient computing vision for Flutter 1.12 is clarified, let’s go to the announcements.

What’s New in Flutter 1.12 Version?



1. Dart 2.7-

The basic change that this Flutter version is bringing is the release of Dart 2.7. This programming language update, will take the experience of working with Dart 2.5 to the next level, as Extension methods and Safe string handling capabilities. It will allow developers to do things like parse integers in a string, and prevent errors when variables have a null value.

2. Beta Web Support-

Flutter for web is one of the significant Flutter 1.5 features. It additionally got an upgrade in this update. The Flutter’s web support reached beta version; making it simpler for developers to use a Dart compiler and the Flutter architecture effectively.

3. macOS Desktop Support-

Assistance for macOS desktop changes from a technical preview to alpha. Now you can build a Flutter project that effectively runs on macOS using ‘Flutter Create’. Desktop application support gets numerous upgrades, developing menu dropdown keyboard navigation, visual density assistance, radio buttons, checkboxes, etc. Upgrades in Linux and Windows are still continue in the tech preview stage.

4. iOS 13 Dark Mode-

For the individuals who like to go with consistent development, the greatest upgrade coming with Flutter 1.12 is complete support for dark mode in iOS 13. This year, Flutter select appropriate support for auto toggling to dark mode on Android 10, with less efforts for developers to engage, if they use stock Material Design widgets of Flutter. As of Flutter 1.12 introduction, all the iOS-like widgets, named Cupertino, are now similarly available in a dark theme that can be enabled automatically on the dark mode settings of a device.

5. Add-to-app-

Another new feature of Flutter 1.12 is stable, official help for adding Flutter to any current Android or iOS application. This is more helpful in the migration of an application to the Flutter once, rather than requiring starting from the beginning. In addition, Android application developers can experience the benefits of recently included ‘Flutter Module’ option in the New Module perspective on Android Studio to easily add Flutter to the Android projects they are working on.

6. Updated DartPad-

The updated DartPad has incorporated the strength of not entirely changing Flutter code, but also evaluating the rendered UI and running the Flutter code efficiently.

7. Adobe XD to Flutter Plugin-

Now Flutter has tied up with Adobe XD and the XD is accessible to the Flutter plugins. The goal of Flutter to make simple designs and more efficient for helping developers and designers in working together appearing as accomplished with Adobe XD partnership. The latest XD in Flutter changes the XD designs automatically into code and makes a usable part of Flutter application development. In addition, it helps product designers to design and prototype simple user experience for desktop, web, mobile, and so on.

8. Google Fonts Package-

The Flutter development team introduced new Google Fonts package. This benefits an access to almost 1,000 open sourced fonts families. The ones that will allow designers to include attractive typography in the development environment within reach in just a line of code.

9. Create Widgets inline with Hot UI-

If you install the Flutter tools on your device locally, you will find another feature previewed in the Android Studio/IntelliJ plugin for Flutter. It allows you to see and coordinate with your widgets in your IDE as you are creating them. This feature is called Hot UI that makes changes in your code and updates the hosted UI.

10. Improvements in Android Build-

To upgrade Android, Flutter recognized some build issues in this release. They made the Android application development more unique, particularly around integrating plugins using Support Libraries and those using AndroidX. They moved the plugins of the Flutter team to AndroidX and propose all applications and plugins moving to AndroidX also. For plugins that haven’t yet switched, if there is a development issue, they have an alternative code path in their platform that uses Jetifier and Android Archive files. Slower platform is the reason of not being the main development framework, nut it fixes about 95% of the development issues the team has experienced.

11. Golden Image Testing-

The term Golden Image alludes to a prime image file that is considered the genuine rendering of a provided state, widget, application or other visual representation you have chosen to capture. In Flutter 1.12, the team has applications of the LocalFileComparator and GoldenFileComparator classes that compare by pixels instead of bits, reducing false positives. These latest applications feature visual differences for clarifying when there are difference between the updates under testing and your golden image.

Final Words-

Flutter is the new face of cross-platform development industry. But, it has not yet showed itself as the best choice for game development. Similarly, it has not yet offered any way to push code updated to the designed applications directly. In any case, it is normal that every one of these issues will be fixed in the coming years. The future of Flutter will acquire better alternatives in the form of Flutter 1.13 version or more updates.
If you are facing any difficulty to develop apps with Flutter, consult with Solace team. Solace developers are well experienced in Flutter development to provide you the best solution. Develop your Flutter app with Solace for more effectivity. We will be happy to help you.