Posts Tagged ‘android’

A Guide to Outsourcing Mobile App Development

Outsourcing your mobile development project to a third party is an important decision.  It is dependent on many things and varies according to the situations. Though there are many options for outsourcing your work, but you need to decide which one is best for your business. This guide will give you a good idea about whom should you outsource your business. You need to take many things into consideration including manpower, resources, budget, etc. At the end of this article, you will have a fair idea about which option you will be choosing for your future mobile app development. Top-Emerging-Trends-in-Mobile-App-Development

Let us have a look at the options for outsourcing-

#1 Boutique Mobile App Development Firms

Image result for mobile app development Boutique mobile app development firms are not included in the technology giants. While they have the best services to offer, they are not set-up on the big scale. These firms specifically focus on mobile app development. They don’t keep it as a secondary product. They have strong technical capabilities and specialized platform knowledge. Though these companies are not as big as the business tycoons, but they vary as per different aspects. It includes technical expertise, resources, technology, project complexity, team size, etc. Such companies have the best to offer according to your budget.

#2 Big App Development Firms

Image result for mobile app development They are the basic technology giants. They have different domains under one string. Mobile app development is usually one of their products. While these companies are highly capable, but they lack at certain points. They have thousands of clients working with them due to which the small clients get less leverage over the big one.

#3 Independent or Freelance developers

Image result for mobile app development Let us keep the companies aside, and talk about the freelancers. Freelancers are probably the ones who are already working in a company but work part time to make extra money. Even though you will have the whole attention of the person, but there is a possibility of not getting the best returns. They are comparatively less expensive. Image result for mobile app development

Which one is right for you?

Outsourcing app development work is a decision that needs to be made according to the organizational goals and requirement of the project. Successfully determining these two things will help you to eliminate many options early in the process. After which you need to concentrate on the risk factor, time period, budget, and customization. And deciding these things will dissolve the other half of your search process. Once your company is able to determine the best route, you can begin researching and narrowing down the best vendor options.

Current Trends for Android App Development

Smartphones are ruling the market today. According to research, the number of smartphones users will be growing from 1.5 billion to 2.5 billion in 2019. And this is the reason why the Android market is growing rapidly. There are new trends in the market every day. Let us check out the key trends of Android app development that will define how the market is changing-

#1 Web Apps + AMP

Image result for web amp Google launched Progressive Web Apps Accelerated Mobile Pages (AMP) in 2016. Web Apps are designed to open a mobile app in the browser without downloading the app. Everything is same in web apps and mobile app except it allows you to use the same app in the browser. And these web apps are developed using AMP project’s principals. AMP is an open source platform that allows one to create faster, easy to load, and high performing web apps.

#2 Augmented Reality and Virtual Reality Apps

Image result for augmented and virtual reality AR and VR apps have not created a log of buzz in 2016, but they got highly popular worldwide at the end. Augmented Reality is a technology that generates a composite view by imposing computer-generated images on user’s view of the real world. You can take the example of Pokemon Go. Another type of app that got popular in 2016 was Virtual Reality (VR) apps. These apps are a simulation of three-dimensional images that a person can interact with real-time using special electronic gadgets. Example Samsung gear, google cardboard, etc.

#3 Mobile Finance Service (MFS) Apps

Image result for mobile financial services paytm mobikwik Well, these are the easiest ones to understand. These apps have an exponential grow recently. Examples of MFS apps are PayTm, Mobiwiki, PayUmoney, etc. People prefer to use cashless transactions nowadays, and they are using mobile apps instead.

#4 Security Factor in Apps

Image result for mobile security apps There are millions of Android apps, and over 75 percent of them do not even pass security tests. These apps are easily accessible by the hackers. And Android app development companies are focusing on improving the security feature of the app. Also, many antivirus apps have come in the market like Avast, McAfee, AVG, 360 security, etc.
So, these are some of the major trends which are ruling the Android app development market in 2017. Apart from this, there are many wearable devices like Fitbit, Apple, Watch, etc.  that will rule the market.  

5 Common Myths About Mobile App Development

The mobile application development industry is expanding, so are different myths about it. The industry has gone through many leaps and bounds recently. The reasons behind misconceptions could be half knowledge, hearsay, and past experience. While developing an application different problems and bugs come up which they are not obvious. People generally consider that these errors and bugs are similar, and this is what encourage myths. These misconceptions start from the sources or companies who could not get what they exactly want. They are generally old presumptions or because of out-of-date ideas which are not correct. And this why, the expansion of this industry has led to many misunderstandings relating to this line of business. In the following piece, we may be debunking a few of these myths:

Myth 1: In-house app development takes same time as the outsourced companies take

Image result for inhouse app development vs outsourcing Well, the reality is completely opposite. Developing an application yourself will take exactly 3-4 times the amount of minimum time you decided. Outsourcing the work would give you 90% results as there will be professionalism. Some companies decide to develop the app themselves to save money and time which ultimately turns out to be a bad idea.

Myth 2: Mobile app development is inexpensive

Image result for mobile app development is inexpensive Yes, the mobile apps are more compact in size than regular internet application, but it doesn’t make it less expensive. In fact, developing a mobile app need more expertise than any other app. The major cost needs to be sustained to employ or the expertise of a mobile application agency and getting software developed. The only already built thing available for free are the application quotes. Apart from this, the developers need to work it out themselves. So, the fact is mobile applications are not inexpensive.

Myth 3: Mobile apps develop their own demand

Image result for mobile app marketing Going by the facts and numbers, it is not as simple as it looks. A mobile application has to compete with many other similar applications. In order to come into the market, your marketing campaign needs to be strong enough to stand out from the competitors. Users just don’t rush into downloading applications on their phone as soon as they are released. So, you need to make sure that you marketing campaign attracts the users.

Myth 4: Building customised application demands a lot of programming

Image result for mobile app programming This myth has become everyone’s favourite, but let us come down to the reality. According to today’s scenario, most of the companies require minimum programming to build a solution. Companies need to accept the reality that company’s flexibility is more about the platform and incorporation than improvement, creation and release mobility solutions in a small fraction of the time and cost of standard solutions.

Myth 5: Facilities require huge investment

Image result for mobile app upgradation investment Though investment is required, but it is the poor planning of companies which lead to this myth. Most of the companies think that adding more servers is the solution to every problem. While you can easily provide a secure, scalable, and inexpensive solution with a cloud-based system. All you need to do is consult with an expert and make a well-planned financial strategy. These misconceptions have been flowing around the market which do not make sense. And if you are also dealing with it, you need to get out and find something better. These myths somehow degrade the quality of a mobile app, and it could be a huge disadvantage for the client and the developer as well.

Kotlin- The Next-Gen Android App Development Language

Android app development is a major part of today’s technical and economical world. People use different languages for developing apps, though Java remains the most used language to develop logic. While running a Java application, the app is compiled into a set of instructions called Bytecode and runs in a virtual machine. In last few years, new programming languages have been introduced which also run on Java virtual machine. The reason behind using these languages is that the resulting app looks same for the virtual machine with simple code and some fixes that developers face while coding in Java. Image result for kotlin   Recently, one such language is introduced by JetBrains, known for IntelliJ IDEA (Android Studio is based on IntelliJ), called Kotlin. It is a statically typed programming language that runs on the JVM. It can be compiled to JavaScript source code. It has many other amazing features, and we will be knowing about them in this article.

Why Kotlin instead of any other language?

Since Java is the only language most of the people use while developing the mobile apps, developers had no actual alternatives to Java app. Java comes with a lot of historical baggage and some issues. Java 8 solved some of those problems, and some were corrected in Java 10. But these two options also have loopholes. One of them is in order to use these two versions, one must have the minimum SDK to Android 24 to use Java 8 which is not an option for many developers. And Java 10 is even far from their reach. So, Kotlin was made to fill these gaps through model language. There are some core principles that Kotlin work with-
  1. Concise- Reduce amount of boilerplate code
  2. Safe- Avoid entire classes of error such as null pointer
  3. Smart- Make your code more readable and understandable
  4. Tool-friendly- One can choose any Java IDE or build from the command line
  5. Interoperable- Leverage existing frameworks and libraries of JVM, Android, and browser.

How to work on Kotlin?

Download the starter project. Extract and open the starter project in Android Studio. It is a simple app that allows users to search for books, book covers and share books with friends to explore Kotlin. Image result for kotlin vs java

It consist of three source code files, let us check it out-

MainActivity.java- an activity that displays the screen for searching and displaying a list of books. DetailActivity.java- an Activity that displays the book cover for the ID passed to it. JSONAdapter.java- a custom BaseAdapter that transforms a JSON object into a listview item. Build and run the project to see what you’re working with.

How to set up the environment of Kotlin?

Android Studio doesn’t have any idea of what to do with Kotlin. So the first thing you need to do is to install the Kotlin plugin and configure Kotlin in your project.

-Installing the Plugin

1. Go to Android Studio/ Preferences and Select the Plugins entry. kotlin for android 32. Click on Install JetBrains plugin on Plugins screen intro_to_kotlin_4 3. Search and select Kotlin from the list and click Install. intro_to_kotlin_5 4. When you are done with downloading and installing Kotlin, then you need to follow the prompts to restart the IDE. intro_to_kotlin_28

– Configure Kotlin in Project

Now the IDE knows what to do with Kotline, but your project app doesn’t, so you have to modify the project’s build configuration. How do modify the project’s build configuration? Let us check out- 1. Go to Tools-> Kotlin-> Configure Koltin in Project intro_to_kotlin_7 2. A Choose Configurator pop up will appear, select Android with Gradle from the drop down. intro_to_kotlin_8 3. On Configure Kotlin in Project popup, select the plugin version you want to use and click OK. Configure Kotlin in Project 4. These actions will make some changes to your build.gradle files.   build.gradle (Project: omg-android-starter): buildscript {  ext.kotlin_version = ‘1.0.3’ // 1  repositories {    jcenter()  }  dependencies {    classpath ‘com.android.tools.build:gradle:2.1.3′    classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version // 2    // NOTE: Do not place your application dependencies here; they belong    // in the individual module build.gradle files  } } allprojects {  repositories {    jcenter()  } } build.gradle (Module: OMG Android):    apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ // 3 android {    compileSdkVersion 23    buildToolsVersion “24.0.2”    defaultConfig {        minSdkVersion 14        targetSdkVersion 23    }  sourceSets {    main.java.srcDirs += ‘src/main/kotlin’ // 4  } } dependencies {  compile ‘com.android.support:appcompat-v7:23.2.0′  compile ‘com.loopj.android:android-async-http:1.4.4′  compile ‘com.squareup.picasso:picasso:2.1.1′  compile “org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version // 5 } repositories {  mavenCentral() }   Here is a summary of what this code is about-  
  1. Declares configured Kotlin version
  2. Declares classpath dependency artifact that contains the Kotlin Gradle plugin with the version declared earlier
  3. Specifies the use of Kotlin Android plugin via apply plugin command
  4. Defines that source files found in src/main/Kotlin will be compiled. Gradle will compile source Kotlin files found in src/main/java.
  5. Added the Kotlin Standard library as a compile-time dependency to the project.
    Click on Sync Now to build a project and run it! intro_to_kotlin_25 Nothing changed visually here, it just made your work bit easier!

Here are 10 reason why Kotlin is cool-

Image result for kotlin
  1. Kotlin is open source
  2. Full Java Interoperability
  3. Kotlin compiles to JVM bytecode or JS
  4. Data Classes in Kotlin
  5. Defaulted parameters
  6. Kotlin imposes no runtime overhead
  7. Null Safety in Kotlin
  8. Extension functions
  9. Swift is like Kotlin
  10. Kotlin wants you to write less code
Inputs & Source

Developing an android twitter client using twitter4j

Recently, we worked out an android twitter client for one for our esteemed clients. In this blog, I will try to explain on how to go about on building such an android application from scratch.
  1. Register your application on http://dev.twitter.com/apps/new.
  2. Please ensure that the application is of the browser type. Please fill anything in the callback url like http://twitter-test.com
  3. You will get the consumer key and the consumer secret once the application registration has been successful.
  4. Create an android project in eclipse(We use eclipse mostly, Please adjust the eclipse specific notes in this blog to adjust to your editor).
  5. Import twitter4j(http://twitter4j.org/en/index.html) as an external jar. This seems to be one of very few complete twitter libraries for java.
  6. We will try to post a status update to twitter. Lets get down to a bit of coding now. Place the following code where you want to trigger the twitter authentication process.
  7. 	Twitter twitter = new TwitterFactory().getInstance();
    	try
    	{
    
    	twitter.setOAuthConsumer(<consumer_key>, <consumer_secret>);
    	String callbackURL = "twitter-client:///";
    	rToken = twitter.getOAuthRequestToken(callbackURL);
    	startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(rToken.getAuthenticationURL())));
    	}
    	catch(IllegalStateException e)
    	{
    	// access token is already available, or consumer key/secret is not set.
    	if(!twitter.getAuthorization().isEnabled()){
    	System.out.println("OAuth consumer key/secret is not set.");
    	System.exit(-1);
    	}
    	}
    	catch(Exception e)
    	{
    	Toast.makeText(TwitterClient.this, "Network Host not responding",Toast.LENGTH_SHORT).show();
    	}
    	
  8. Lets try to deciper the code here
  9. First we get the instance of the twitter factory and the set the oAuth consumer and secret with the keys that we got from the twitter site.
  10. Next we point the callbackURL to the intent filter that we would create in the application xml file. The intent filter is required so that the application catches the intent when the browser redirects back after successful twitter authentication. In my case i have added the following intent filter to my AndroidManifest.xml
  11. <intent-filter>
    <action android:name=”android.intent.action.VIEW” />
    <category android:name=”android.intent.category.DEFAULT” />
    <category android:name=”android.intent.category.BROWSABLE” />
    <data android:scheme=”twitter-client”/>
    </intent-filter>
    You can read more about intent filters on the android sdk site.
  12. Next we get the oauth request token and start the activity which will get the username/password and give authorization to our twitter application.
  13. When we return back from twitter, will place the following code on onResume activity callback:
    </li>
    @Override
    
    public void onResume() {
    
    super.onResume();
    
    Uri uri = getIntent().getData();
    
    if (uri != null) {
    
    oauthVerifier = uri.getQueryParameter("oauth_verifier");
    
    }
    
    try {
    
    Twitter tt = new TwitterFactory ().getInstance();
    tt.setOAuthConsumer(<consumer_key>, <consumer_secret>);
    AccessToken at = tt.getOAuthAccessToken(rToken, oauthVerifier);
    String token = at.getToken();
    String secret = at.getTokenSecret();
    // Post to twitter.
    Twitter t = new TwitterFactory().getOAuthAuthorizedInstance(<consumer_key>,
    <consumer_secret>,
    new AccessToken (token, secret));
    t.updateStatus("Test Android Twitter Client");
    
    } catch(Exception e) {
    Toast.makeText(TwitterClient.this, "Network Host not responding",Toast.LENGTH_SHORT).show();
    }
    }
    
  14. Twitter has sent the verifier in the parameter of the return url, so we get it using getIntent().getData().getQueryParameter(“oauth_verifier”)
  15. Now when we have the verifier, we can get the access token and call the twitter4j method to update the status on twitter. twitter4j supports most of the twitter API and can be used for any operation which can be performed using twitter API.
Hope this helps someone. In case you have any queries, Please feel free to leave them in comments. We will be more than happy to help !! Edit: Here is the link to Sample Application. Please replace the variables OAUTH_CONSUMER and OAUTH_SECRET with the consumer and secret keys of the application that you have registered with twitter.