Future Of Mobile App Engineering

High performing and quality apps take a lot to develop using an old “native” way of coding in comparison with using cross-platform technology that provides faster deployment almost without compromise the performance.

What is React Native?

In 2015, Facebook announced and open sourced React Native; it was already being used internally for their mobile engineering. React Native is a framework for building native mobile apps using React. This means you can use a best-in-class JavaScript library (React) to build your native mobile user interfaces.

The most part, this had to do with performance and the absence of first-class Android support. What we did 

Growing popularity

Understandably, developers don’t want to invest the little time they have to learn a technology that has a good chance of becoming obsolete soon. But it takes just one look at Google Trends to understand that the interest in React Native is as strong as ever.

Many fortune companies are using it for their startups business, including famous brands or social media companies like Instagram, Skype, Tesla, Uber, Walmart, Wix.com, and others. 

Why do we select React Native?

When choosing technology for your app first, you ask yourself how long will this tach last. Who is behind it and would it be possible to accomplish what you want?

Since Facebook engineering supports React Native, it has a sizeable developing community to back it. This community along with Facebook is continually improving the framework, setting advanced goals and promising the constant technology upgrades. So, for now, you don’t have to be worried that React Native will disappear soon, it can just get better.

According to the Stack Overflow Developer Survey 2019, React is the most famous framework on which many developers are working and asking questions.

How is it better compared to Native Development?

The UI is flawless when building with React Native as it uses native widgets. Along with JavaScript, it can run the most complex apps smoothly, outperforming even the real native apps. That is why developing apps with React Native is possible even for robust enterprise apps.

 

Unrelieved get Nokia smartphone & bring free wireless earphone this Diwali

This festival you will get something more, if you will select Nokia smartphone. HMD Global is getting into the mood of celebrating Diwali by announcing an interesting offer for buyers. The Finnish company is offering a free wireless earphone to buyers on it office online store.

The company took to tweet Nov 2, 2018 8:04PM  and according to that to buy new Nokia smartphone at http://nokia.com/phones and enjoy free shipment wait not finished and #ThereIsMoreToIt! With this purchase get Nokia Active Wireless Earphones worth Rs 3360 #free with TnCs apply. Continue reading

Unbelievable but true! Buy Google Pixel 3 With in 12K From Flipkart, here’s how

A few days ago Google introduced it’s new Google Pixel phone in front of us. This phone has very good specification with Android 9 OS support. Also, it will be received all latest Android updates very instantly. Currently, this is in the pre-order case with different variants and price will vary as per the storage and other factors.

But Flipkart will provide you this with huge discount and after that, you will get it in just 12K. Yes, just in 12K. Really It’s an unbelievable discount. So, if you really looking to buy a good powerful Android phone with a good camera and all then you can buy it.

Continue reading

Gitlab Auto Devops for Android

DevOps (short for Developer and Operations) is a term coined to describe the approach of using tools, metrics and processes to help your team deliver high quality experiences — using automation to minimize mistakes and maximize efficiency in product delivery. It is focused on enabling developers to use and manage software operations processes and infrastructure without needing a separate operations team. “DevOps culture” is here to make your lives easier and ensure that your users get the highest quality product in the users’ hands and speed up your development process.

What is AutoDevOps?

As enterprises begin to embrace the benefits of DevOps to improve their application workflow, challenges still exist in the development process that prevent a streamlined workflow between developers and operations. In this interview, Sid Sijbrandij, CEO and co-founder at GitLab, shares insight on the company’s plans to offer an automated approach to DevOps, and shares solutions for enterprises who are interested in adopting DevOps as part of their business strategy.

Traditional AutoDevops

DevOps process is very important for us as it help us to improve operations and development processes. Fews months ago Gitlab introduced very cool feature with us which is known as Auto Devops. It will reduce so many efforts of process management. As per current standards we are following below mentioned steps.

1 Gitlab push

2 Jenkins hook integration

3 SonarQube code check

4 Upload build on server and so on.

But through the help of this Auto DevOps process, we never need to follow above steps. Only git push event will create build for us with functional, unit testing. Even with help of this we can publish our app on Google Play store/ Apple APP store.

Procedure

Create your project as you are creating for Android. Then do the push event.

  1. As we are using then we have to know few git commands very well.
git init 
 git commit -m “<add desired message>”

git merge brancha branchb

git push origin master 
  • Create  .gitlab-ci.yml file and add codes 
image: openjdk:8-jdk

variables:
  ANDROID_COMPILE_SDK: "25"
  ANDROID_BUILD_TOOLS: "24.0.0"
  ANDROID_SDK_TOOLS: "24.4.1"

before_script:
  - apt-get --quiet update --yes
  - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
  - wget --quiet --output-document=android-sdk.tgz https://dl.google.com/android/android-sdk_r${ANDROID_SDK_TOOLS}-linux.tgz
  - tar --extract --gzip --file=android-sdk.tgz
  - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter android-${ANDROID_COMPILE_SDK}
  - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter platform-tools
  - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter build-tools-${ANDROID_BUILD_TOOLS}
  - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter extra-android-m2repository
  - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter extra-google-google_play_services
  - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter extra-google-m2repository
  - export ANDROID_HOME=$PWD/android-sdk-linux
  - export PATH=$PATH:$PWD/android-sdk-linux/platform-tools/
  - chmod +x ./gradlew

stages:
  - build
  - test

build:
  stage: build
  script:
    - ./gradlew assembleDebug
  artifacts:
    paths:
    - app/build/outputs/

unitTests:
  stage: test
  script:
    - ./gradlew test

functionalTests:
  stage: test
  script:
    - wget --quiet --output-document=android-wait-for-emulator https://raw.githubusercontent.com/travis-ci/travis-cookbooks/0f497eb71291b52a703143c5cd63a217c8766dc9/community-cookbooks/android-sdk/files/default/android-wait-for-emulator
    - chmod +x android-wait-for-emulator
    - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter sys-img-x86-google_apis-${ANDROID_COMPILE_SDK}
    - echo no | android-sdk-linux/tools/android create avd -n test -t android-${ANDROID_COMPILE_SDK} --abi google_apis/x86
    - android-sdk-linux/tools/emulator64-x86 -avd test -no-window -no-audio &
    - ./android-wait-for-emulator
    - adb shell input keyevent 82
    - ./gradlew cAT

A little bit explanation about file.

Running unit tests

unitTests:
  stage: test
  script:
    - ./gradlew test

This defines a job called unitTests that runs during the test stage. Nothing crazy here – we’re just running unit tests.

Building the app

build:
  stage: build
  script:
    - ./gradlew assembleDebug
  artifacts:
    paths:
    - app/build/outputs/

This defines our first job, called build. It’s the only job in the build stage. It just builds the debug version of the app and makes the outputs of the build available for download via the artifacts field.

 

Run your new CI setup

After you’ve added your new .gitlab-ci.yml file to the root of your directory, just push your changes and off you go! You can see your running builds in the Pipelines tab of your project. You can even watch your build execute live and see the runner’s output, allowing you to debug problems easily.

After your build is done, you can retrieve your build artifacts:

  • First, click on your completed build:

Conclusions

So, there you have it! You now know how to create a GitLab CI config that will ensure your app:

  • Compiles
  • Passes unit tests
  • Passes functional tests

And allows you to access your build artifacts (like your APK) afterwards.

Pro

  • It will reduce hook events.
  • Developer no need to worry about code unit testing. It will help on single place and seniors can add their commits easily.
  • Pipeline structure is very simple.
  • Developer will get pipeline failure email automatically.
  • Will reduce Traditional Devops processing steps.

Cons

  • We need to purchase Google cloud kubernetes, if we want to add cluster in it.

 

Flutter Vs ReactNative

Currently technologies are growing very fast not only hardware based but also software based; some of them are in improvement development phase and other also in production phase. But Nowadays, cross platform based mobile application development is very popular.  A developer is enthused to learn, how with the help of web technologies (html, css and Javascript)knowledge can help him to develop mobile application. Even it is also very interesting point for project manager, Business analyst and further tech lead of company who wan to grow their business & company.

https://medium.com/@openGeeksLab/flutter-vs-react-native-what-you-need-to-know-89451da3c90b

 

So same today I am sharing hot topic of technology market. Flutter vs React Native; as such we know a year ago in Google io 17, Google announced flutter framework for mobile application development.  Which is based on Dart language, it’s also developed by Google team.  If missed this announcement, don’t worry you can checkout below video for the same.

Previously, we had React Native introduced by Facebook. It got an overwhelming response from the app developers. Google Flutter that helps to create cross platform apps with ease. By introducing Flutter, Google literally tried to resolve the issue of cross platform app development, which otherwise has always been a major challenge for the app developers. However, if we look at the current statistics, the market related to cross platform app development is expected to reach at $7.5 billion by this year.

However, the focal point of today’s discussion is making a very crucial comparison between two frameworks that help in creating cross platform apps. The opponents are Google Flutter on one hand and React Native on the other.

Flutter has been introduced last year only at the Google I/O Developer Conference 2017, while React Native has been there from 2015. Therefore, comparatively, the developers have just commenced using Flutter but React Native is proudly associated with giants like Facebook, Instagram, Skype and Bloomberg etc. React Native is an open source framework released on GitHub that paved the way for uniting both iOS and Android platform’s native APIs. However, Google’s Flutter has been a revolutionary move, which allows you to create Android and iOS highly responsive native apps at the same time.

 

What is Flutter?

Flutter is Google’s response to React Native and I’m sure you must have heard about it. After the announcement of Flutter, comparative discussions started making rounds on various mobile development communities about which “React Native or Flutter” is the best framework for developing cross-platform mobile applications with JavaScript. However, that’s a no-brainer. Flutter allow google developers build apps for both iOS and Android at once while using the exact same code. This may sound like a giant leap for Flutter but it still has a long way to go in catching up with React Native. At the moment, developers who are mentally bucketed with React Native development are not even seriously considering Flutter. Although I believe Flutter might be the future of mobile app.

 

A quick takeaways about Flutter: –

-It is the Dart Language. Say what Dart? !!! That’s the reaction of most developers.

  • The recommended IDEs with Flutter plugins are Android Studio or Intellij Idea.
  • Flutter has Dart bridge, the application size is bigger, but it works much faster. Unlike React Native with Javascript bridge.

  • React Native and Flutter share similar paradigms like event handlers and class extension.

  • Flutter’s animation and install experience are really good and smooth respectively.

Flutter Vs. React Native

Performance Wise When one compares both React Native as well as Google Flutter on the basis of their performance, it is the Flutter that has an edge over its competitor. Flutter has the advantage of Dart and also the JavaScript Bridge to connect with the native components. However, the problem with React Native is visible when the app developers are building the hybrid apps, but as far as native apps are concerned, you won’t face any performance related issues. It offers seamless performance in all standard cases and is highly reliable. However, when developing the hybrid apps using React Native, one has to face issues related to its architecture, libraries and native components. On the other hand, flutter encourages the app developers to reuse the same existing code. Plus, it is also backed by a powerful C++ engine.

Who Takes Less Development Time

The app developers work on very strict deadlines nowadays. Therefore, it becomes a bonus if they opt for a framework that offers shorter development time. So here, React Native has emerged as the winner as it reduces the time of app development. This is one of this biggest USPs.

And how does it provide that comfort to the developers? It has ready-to-use components, which upsurges the speed of cross platform app development. Although Flutter has also promised of high speed app development but it is still to be tried properly.

 

Conclusion

Well, it can be said that it is extremely difficult to pick the winner at the end, more so because both React Native and Flutter has their own set of pros and cons. One must not forget that Flutter is still new in the hub of app development industry and React Native made its inception way before to gain a good audience ground.

The final choice has to be made by the developers based on their specific requirements.

 

References

Flutter Vs. React Native: Let’s See Who the Winner is

https://medium.com/@openGeeksLab/flutter-vs-react-native-what-you-need-to-know-89451da3c90b

Journey Of Google Scholar Ship Phase1 – Android

It is a very happiest moment for me to share my experience of “Udacity Indian scholarship”. I am one of the luckiest men who were to receive this scholarship from Udacity. Actually, This program makes me be part of the large community.

By profession, I am a full-time software engineer in Android. I used to go through Udacity for some free online course just to keep my self-updated with latest things. Once I came to know that “Udacity is offering scholarship” I was so excited to see that, without a second to waste I applied for “Android nano degree” and I was so thrilled, but at the same time by heart I was nervous because if I won’t get a chance it will be sorrowful moment for me. February 14th I got the email from Udacity to congratulating me for getting my application selected and to be the recipient of “Google India Challenge Scholarship 2018”

You know as a software engineer getting a certification or learning from some blogs is not that easy. But Udacity really is a stepping stone be a professional developer and what I like from Udacity all things you learn with doing, so it makes me so relaxed.

Due to time constraint, I was not being able to dedicate my self to Udacity I used to get time after my work and start learning. When I get to know about the course in more detail I started dedicating my time more energetically. You know the course covers all things, on the initial video tutorial will let you know what kind, of course, you are doing and whom and all will be with you to learn to code. All the recipient was being invited to join on the slack community where we discussed daily task and will be happy to update itself with live AMA session with @Akshit sir as well as meet good learners who have a positive attitude and good learning ability. Also, get to chance work on collaborative projects.

Collaborative Project Experience,

There are four+1 collaborative projects are selected by Akshit and those are Explore India, Quiz App, Blood Donation, Community App and the special one is women safety. They are started opening the issues in the GitHub and I start contributing those projects. And gave my best Pull Request to some projects. But fortunately, one of my PR is got selected by women safety, which I have to add downloaded font concept. It is wonderful experienced and also it is one of the best practice for Open Source Contribution. Learned about contribution in various aspects.

 

Once again thank you to Udacity and a complete team who org. this wonderful mind-blowing program. Also, special thanks to Akshit Jain

A new framework in mobile application development

Flutter is Google’s mobile UI framework for crafting high-quality native interfaces on iOS and Android in record time. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source. It’s not necessarily a household name yet, but it’s also less than a year old and, to some degree, it’s going up against frameworks like Facebook’s popular React Native. Google’s framework, which is heavily focused around the company’s Dart programming language, was first announced at Google’s I/O developer conference last year.

As the company announced today, Flutter is now officially in beta and a number of developers have already used it to build and publish apps that have hit top spots in both the Google Play and Apple App Store.

As per Techcrunch Latest Articles

Seth Ladd, Google’s product manager for Flutter, told me that it’s no surprise that the company is making this announcement during MWC. The company wants to use this opportunity to engage with mobile developers and to highlight the advances it made over the course of the last year. For the most part, that means better tooling, like support for Android Studio and Visual Studio Code for writing Flutter apps.

Key Features of List

Fast DevelopmentHot Reload in milliseconds to paint your app to life. Use a rich set of fully-customizable widgets to build native interfaces in minutes.
Expressive and Flexible UIQuickly ship features with a focus on native end-user experiences. Layered architecture allows full customization, which results in incredibly fast rendering and expressive and flexible designs.
Native PerformanceFlutter’s widgets incorporate all critical platform differences such as scrolling, navigation, icons and fonts to provide full native performance on both iOS and Android.

Why Dart is the just the right language for Flutter?

“We didn’t find another language that hit this sweet spot of fast development cycle plus the standard stuff devs expect and love like object orientation, a rich core library and very easy onboarding. With this beta, Flutter now supports the pre-release version of Dart 2, which offers better support for client-side development, too.

What about rival frameworks like React Native?

Flutter uses its own GPU-accelerated graphics and rendering engine and not a web view. “There is a huge benefit to this in that the design that your designers envision and what they delivered to your developers are the exact some pixels and designs that your users will experience,” said Ladd. “By shipping our own graphics engine, we offer consistent design as your designers envisioned.”

The Flutter team also stresses that Flutter plays nice with existing parts of an app. You don’t need to write your complete app in Flutter. Indeed, many of the developers that have already used it have simply added new Flutter-based screens to their existing apps. As for apps that are fully based on the new toolkit,Google notes that the Hamilton app is among the most popular app to have been built with Flutter.

Expressive, beautiful UIs

lutter’s built-in beautiful Material Design and Cupertino (iOS-flavor) widgets, rich motion APIs, smooth natural scrolling, and platform awareness.

 

 

Introducing Magento 2.X with GraphQL Module

Magento is an ecommerce platform built on open source technology which provides online merchants with a flexible shopping cart system, as well as control over the look, content and functionality of their online store. Magento offers powerful marketing, search engine optimization, and catalog-management tools. We believe that Magento is one of the best ecommerce platforms available today, with editions ranging from community open source, to massive, large-scale enterprise SaaS based systems.

 

GraphQL Module

In his meduim blog graphan’s announced the first integration with market solutions! The product chosen to be integrated with GraphQL is Magento2 Community Edition .You can require it in composer.json as a normal Magento2 module!

Why Magento2?

E-commerce is one of graphan’s point of interest, so he wanted to add GraphQL intergration into one of popular e-commerce solutions. He has chosen Magento2 CE due to the fact that it is open-sourced and provides much better architecture comparing to Magento 1.x versions.

BENEFITS OF USING MAGENTO

  • Easy to install and add additional layouts and plug-ins
  • Open source technology that offers flexible, scalable ecommerce solutions
  • Effective and cost sensitive program
  • Allows for various discounts and promotions during check-out
  • Provides more than 50 payment gateways

How can I install it?

You can just install it like a normal Magento2 module. Just execute:

composer require we-like-graphql/magento2

and thats all! GraphQL API is already exposed at:

http://<your_magento2_path>/index.php/graphql

Types

GraphQL is strongly typed – you define the exact structure of what can be returned. For example,

type Product {
    id: Int
    sku: String
    title: String
    description: String
    . . .
}

In the case of Magento, types would be generated automatically from the set of available attributes for entities such as “Product”, or from the return type of service contracts.

Interoperability

The simplicity of the GraphQL type system makes it easier to integrate with a wider range of programming languages. It also aligns well with existing Magento 2 service contracts. This makes it straightforward to add GraphQL support to Magento 2 alongside REST and SOAP.

There are several client-side JavaScript libraries available for integrating GraphQL with JavaScript rendering frameworks. For example, Facebook backs Relay for use with React. There is also Apollo. These libraries have various features such as automatic client side caching of data.

Data Retrieval

GraphQL supports concepts of both read request (queries to read data) and write requests (mutations allow inserting/updating/deleting database contents). When you specify a query to retrieve data, you must also specify what fields you want to return. This aligns well with the new proposed Magento query API (a new persistence layer for Magento to separate database access from business logic), where we want to minimize data to retrieve and transfer.

{
    product(sku: MJ01”) {
        sku
        title
    }
}

Data is returned in JSON format.

{
    data”: {
        product”: {
            sku”: MJ01”,
            title”: Mens Jacket in leather
        }
    }
}

Note that fields map on to function calls. For example, the “sku” field above may be a call to a simple getter function of a product record fetched from the database. But, fields can also invoke any defined code, such as a “relatedProducts” field returning an array of product information about related products. This allows a query to fetch data from multiple nodes in a graph of information in a single query. It is this sort of graph navigation that makes GraphQL more powerful than REST.

{
    product(sku: MJ01”) {
        title
        relatedProducts {
            sku
            title
        }
    }
}

Asking for specific data fields may feel burdensome initially, but there are multiple benefits:

  • It reduces network transfer, which can be important for mobile devices.
  • It allows for performance improvements, as the server knows exactly what fields are wanted, enabling query optimizations to be made. (In the case of Magento 2, SQL joins can be avoided for EAV attributes that the client does not need returned.)
  • It allows for schema evolution. New fields (including new linkages between types) can be added without breaking existing applications. Old fields can be removed when no old clients request that field. (GraphQL also supports the concept of marking fields as deprecated for documentation purposes.)

What part of Magento2’s REST APIs is already covered?

The list of covered Magento2’s REST APIs is listed in Readme in this repo. The list is not quite enormous yet, so…

What’s further?

For sure, we want to keep this project active and we will try to cover next Magento2 REST APIs. However, in the future, we would like also to create a demo app that would demonstrate how Magento2 GraphQL APIs can be consumed. We will divide our free time between these tasks.

Check this repo on GitHub. Also you can read this tuts will help your magento site more fast.

Google now support more deeper with 16 new lang

Recently I have gotten a new notification. It just about Google Assistant support 16 new languages. I am quite surprise, but it is also not new because, the Google Assistant are available to users on more than 400 million devices, we’re focused on expanding the availability of the developer platform even further. At Mobile World Congress, we’re sharing some good news for our international developer community.

Starting today, you can build Actions for the Google Assistant in seven new languages:

  • Hindi
  • Thai
  • Indonesian
  • Danish
  • Norwegian
  • Swedish
  • Dutch

These new additions join English, French, German, Japanese, Korean, Spanish, Portuguese, Italian and Russian. That brings our total count of supported languages to 16! You can develop for all of them using Dialogflow and its natural language processing capabilities, or directly with the Actions SDK. And we’re not stopping here–expect more languages to be added later this year.

If you localize your apps in these new languages you won’t just be among the first Actions available in the new locales, you’ll also earn rewards while you do it! And if you’re new to Actions on Google, check out our community program* to learn how you can snag an exclusive Google Assistant t-shirt and up to $200 of monthly Google Cloud credit by publishing your first Action. Already we’ve seen partners take advantage of other languages we’ve launched in the past like Bring!, which is now available in both English and German.

Link to your Android app to help users get things done from their mobile devices

By the end of the year the Assistant will reach 95 percent of all eligible Android phones worldwide, and Actions are a great way for you to reach those users to help them get things done easily over voice. Sometimes, however, users may benefit from the versatility of your Android app for particularly complex or highly interactive tasks.

So today, we’re introducing a new feature that lets you deep link from your Actions in the Google Assistant to a specific intent in your Android app. Here’s an example of SpotHero linking from their Action to their Android app after a user purchased a parking reservation. The Android app allows the user to see more details about the reservation or redeem their spot.

As you integrate these links in your Action, you’ll make it easier for your users to find what they’re looking for and to move seamlessly to your Android app to complete their user journey. This new feature will roll out over the coming weeks, but you can check out our developer documentation for more information on how to get started.

For further detail you can check this out “Actions on Google now supports 16 languages, android app integration and better geo capabilities