getting started with android studio

LISTVIEW IN ANDROID

Hello, welcome to bunkerspoint ,this topic is based on list view in android with example. So what’s list view in android? In android developers official website it says,“A list view is an adapter view  that does not know the details, such as type and contents, of the views it contains. Instead list view requests views on demand from a ListAdapter  as needed, such as to display new views as the user scrolls up or down”.

In simple, a list view is a view that contains list items and display them in vertical scrollable, which allows user to scroll the list items up and down vertically. ListView uses adapter to bind data from it to display in ListView. Think of an adapter as a middleman between Adapter view and any other view such as ListView , GridView etc.

USING ADAPTER IN LISTVIEW

ListView is a subclass of AdadpterView and they can be populated by binding to an Adapter. An Adapter retrieves data and represents those data. There are some common adapters which are frequently used such as ArrayAdapter, BaseAdapter, CursorAdapter etc..


In this tutorial, we are going to make use of ArrayAdapter. We are going to see how to implement listView in android studio using ArrayAdapter.
After following this tutorial, you would have the following output.

Lets begin with creating activity_main.xml

Create a lisView inside the activity_main.xml and give it a id of listView.

<?xml version="1.0" encoding="utf-8"?>
<!-- Layout for the main screen -->
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/listview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="16dp"
    android:paddingLeft="16dp”
    android:paddingRight="16dp"
    android:paddingTop="16dp" />

Create a new layout resource file and name it as list_items

<!--  Single List Item Design -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:textSize="16dp"
    android:textStyle="bold" >
</TextView>

In mainActivity.java add this code snippet.

package com.bunkerspoint.android.listView;

import android.os.Bundle;
 import android.support.v7.app.AppCompatActivity;
 import android.widget.ArrayAdapter;
 import android.widget.ListView;
 import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
    ArrayList<String> arrayList = new ArrayList<>();
    arrayList.add("Manuj");
    arrayList.add("Pratik");
    arrayList.add("Yash");
    arrayList.add("Yatendra");
    arrayList.add("Yagnesh");
    arrayList.add("Mayur");
    arrayList.add("Manuj");
    arrayList.add("Raju");
    arrayList.add("Yadav");
    arrayList.add("Dhoni");


    ArrayAdapter<String>arrayAdapter = new      ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,arrayList);
    // Get a reference to the ListView, and attach the adapter to the listView.
    ListView listView = (ListView) findViewById(R.id.listview_flavor);
    listView.setAdapter(arrayAdapter);
 }
}

The above code snippet creates a listView with list items as shown below.

HANDLE CLICK LISTENERS IN LISTVIEW

The above code snippet only shows the list item but listview are useless when we are not able to click those list items. So below code snippet will let you handle click events in listView so that you could be able to use it in your projects.

listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {

        String selectedItem=arrayList.get(position);
        Toast.makeText(getApplicationContext(), "Person Selected : "+selectedItem,   Toast.LENGTH_LONG).show();
    }
});

Place this code snippet in MainActivity.java inside the onCreate()methd.

Let me explain whats happening in the MainActivity.java.
So, we instantiated ArrayList of type String and named it as arrayList and then added the items in it.

Then we created a ListView and ArrayAdapter which taken in as String and named it as arrayAdapter and we set the adapter to listView by listView.setAdapter()method.

To handle click events in our listView, we used the onItemClickListener and said it what we want to do when a user clicks on any item. In this case we toast the items upon click.


In this post, you learnt about how to create a listView and use it to populate list items in it by using ArrayAdapters. The ArrayAdapter in this tutorial uses a string type and not custom implementation and also the ArrayAdapter uses Android Studio’s default (provided layout of simple_list_item_1) adapter. So if you want to learn more about how to implement a CustomAdapter then check it out at our website
https://blog.hiewpoint.com/category/android/

android-1635206_1280

Upload Your First App In Play Store

Hello, welcome to bunkers point. In this post we are going to show you how to upload your app to play store in detail.
So let’s get started,
First you’ll need to register a developer account in Google play console. It will cost you a 25$ for registering as a developer in play console. Don’t worry it’s a one time payment. After that you could upload as many apps you want.

REGISTER FOR A GOOGLE PLAY DEVELOPER ACCOUNT:

⦁ Sign up for a google developer account using google account.
⦁ Accept the Developer Distribution Agreement.
⦁ Pay the registration fees.
⦁ And finally complete your account details.

GENERATE A SIGNED APK/BUNDLE:

Usually, you would have built the debug apk which could simply be built by selecting and clicking on Build Apk .This is a debug apk which developers build so that they could test their apps but if you want to upload the app to play store then you need to generate a signed apk/aab .

STEPS TO CREATE APK:

  • .Goto Build and select Generate signed Apk/Aab
  • Select APK and Click next.
PLAY STORE
  • Select create new keystore path and store it wherever you want
  • Enter the keystore password,key alias ,fill certificate details and click Ok.
  • Select destination and then select the build type as release , as google play store does not accept the apk/aab as type debug and check mark the signed versions v1 or v2 or both.
  • Click Finish and your done.

Android studio will now build the apk and you could locate or analyze the apk/aab after build is done.
One important thing you have to do as soon as your build is ready, always backup your keystore somewhere safe as it will be required at the time of updating your app. If you lose your keystore then nobody could help you , not even Google. As Google Play secures the app with key so it is necessary that you provide a key at the time of updating your app otherwise you will not be able to update the app in Play Store. If you don’t want to handle the key by yourself then no worries ,Google Play Console now has a feature that lets Google manage the app singing key .
The above steps were to create a signed apk but Google has launched Bundles .Now in Google Play Store ,app bundles can be uploaded instead of apk. Bundles helps in reducing the app size to about 50% and bundles are faster than apks.

STEPS FOR CREATING ANDROID APP BUNDLE:

  • .Goto Build and select Generate signed Bundle/APK
  • Select Android App Bundle and click Next.
  • Select create new keystore path and store it wherever you want
PLAY STORE
  • Enter the keystore password,key alias ,fill certificate details and click Ok.
  • Select the destination and then select build type as release as google play store does not accept the apk/aab as type debug and check mark the signed versions v1 or v2 or both.
  • Click Finish and your done.

UPLOADING THE APK/BUNDLE TO GOOGLE PLAY CONSOLE:

⦁ After registering to the Google Play Console, goto the All applications and select create application.

PLAY STORE


⦁ Enter your app Title and click ok.
⦁ Now you need to enter details of your app for store listing, Pricing and distribution, content rating.


⦁ And then in app releases , click on manage under production and then drag or copy your APK or AAB and wait for uploading.
⦁ If you don’t want to handle the key then you could opt in the app signing key and continue ,else opt out.
⦁ After everything is done ,your app will be under review and checks and when no issues found ,your app will be published in Google Play Store.


Note: You need to provide description,images,logo etc for your app.You’ll come to know it at the time of uploading the app. I’m pretty much sure you’ll be able to handle these things easily. If any doubt don’t hesitate to ask.

And don’t forget to comment,share and like. Thanks for reading.

CrossPlatformmobileappthumb

Top Cross-Platforms Development Software For Android And IOS

If you are a new developer and wondering which software to use? which will be convenient…….? Well, it’s simple. 

Given below are top software which you can use to use in both android development and ios development.

React-Native

React-Native allows user to build apps using java script only. It uses the same design as React. These apps that users built are not web apps but the regular android and ios apps. Instead of using java and Kotlin it uses java script and React. It produces apps which are in distinguishable from native, it means it is more productive than native. Currently React Naïve only supports android an ios apps but it holds the potential to support other platforms in future.

Pros

  • Doesn’t waste time recompiling.
  • Can use native code any time you want.
  • Builds apps for both android using one language only.
  • Any updates in code of apps doesn’t require any re-release of app.

Cons

  • Resources are not available as much java or Kotlin.
  • Community is too young for any beginner to learn.
  • Updates of SDK for android or ios takes long time to synchronize with react native.
  • Need to frequently install packages.

Xamarin 

                Xamarian is C# based it uses one language for all type of applications such as Windows, ios and Android. It targets all platforms with its single shared code based. Xamarian has native interfaces, native access native performance type which apps do not only work and look like they also behave like it. Capabilities such as art kit android multi-window mode develop Mac or PC it uses usual visual studio and world-class IDE’s.

Pros

  • It comes with sample apps for you to quickly and easy to start with.
  • It supports functionality and quality monitoring over 1000 devices simultaneously.
  • Xamarian platform allows you to share code.

Cons

  • The free version of Xamarian has limited features which lead to some compatibility issues.
  • There are some issues with libraries of the free version.

Appcelerator

               Appcelerator is java language based single code software .which can be used for application development for both android and ios. It comes with features such as drag and drop. It singles shared code system where you can use one code for many platforms. Titanium development in it helps in native programming development.

Pros

  • It is ideal for beginners.
  • It gives access information over 5000 API’s.
  • It gives powers to more than 75000 phones simultaneously.
  • It easily creates complex effects like dynamic animations.
  • It immediately provides support for new OS release type.

Cons

  • It has many support issues which have been reported quite often.
  • Lacks support for windows phones and IDE’s are slower and lagging.

Abode phone gap

Abode phone gap build is a cloud-based service built on top of the phone gap frame work. It allows you to write code HTML, CSS and JavaScript to perform a wide range of mobile applications while not losing its native features.

Pros

  • It is easy to configure extensive documentation and online support all the time.
  • It has hardware features such as GPS/location, camera and much more.
  • It offers abode AIR app and online training courses.
  • It supports in-app purchases across like the app store, google play store.
  • It helps us in saving with code reusability functions in it or all windows, ios, and android.

Cons

  • It is not used for advanced level coding.
  • Critical performance cannot be relied upon.
  • It is not suitable for intense graphics programming.
  • It has restrictive plug-ins for free version users.

Sencha Ext JS

         It purely based on java script is used to make the interactive framework for web apps and apps it has the library which easily integrates into reacting, angular, FOSS and other frameworks. It used to create data-intensive cross-platform apps that can leverage hardware acceleration techniques.

Pros

  • It features built-in native looking themes it already has in store.
  • Its backend data works with different types of software.
  • It’s a solution for rapidly developing its design.
  • It has 115+ components that help with the development of apps.

Cons

  • Its native themes are limited.
  • Commercial license featuring is not so easy to be done.

RhoMobile Suite

Rho mobile suite is java script based it uses its single code based system for developing cross-platform apps. This suite is based o Rhodes open source framework is a set of development tools for creating data-centric, cross-platform, native mobile consumer and enterprise application.

It has created a cohesive end to end development solutions for multiple device OS it’s an attractive proposition against its expensive purchases in it.

Pros

  • It has offline support data accessibility and synchronization into apps.
  • It has auto synchronization of back end data.
  • It comes along with a free eclipse plug-in it.
  • Allows a developer o generate, develop and test applications in it.

Cons

  • One of the biggest disadvantages of it is RFID (Radio-Frequency Identification) which it restricts. 

Native script

           Native script is an open source framework for developers to develop both android and ios. Native script is a hybrid type of software which has both JavaScript and TypeScript languages in it .developers can access native API’s and it is used in enhancing its existing features.

Pros

  • Developers can easily reuse the available plug-in npm directly in native script projects.
  • Ability to access core API’s directly makes it so easy to integrate custom modules.
  • It offers flexibility even though it is a free tool.
  • It supports hundreds of plugins to extend functionality.

Cons

  • The resources are not extensive you may not be able to find useful examples.
  • Documentation of each of its features may or may not be available.
  • It requires a good deal of set up to start it.
  • Styling and layouts are inconsistent.

Kony  

    Kony runs purely on java script .it used mostly in Windows and Mac systems. Low-code platform that allows seamlessly integrates and displays it develops native and hybrid and web apps from a single IDE using javascript it has a cloud-based preview.

Pros

  • Capabilities to check their real-time crashes.
  • Ideal for designing and testing apps.
  • It supports all kind of management augmented reality types of software.

Cons

  • Limited support for other languages except for English.
  • The manual is confusing instructions are not well explained.
  • Due to the scarcity of documentation and resource support it puts the developer in a peculiar situation.

Mono cross

Monocross is a C# .NET model viewer-controller framework where the model and controller are shared across platforms and the view is implemented for every specific platform or target architecture it used to make web-apps and normal apps and can also be used to share the business logic and data code.

Pros

  • It has easy third-party API integration.
  • Fast porting makes it easier for it to keep up with the platform changes.
  • It supports quite a diverse range of API’s .it makes mono cross completely utilize the device completely.
  • Monocross only require C# and .NET to develop apps.

Cons

  • The documentation and support are few in numbers so the developer found it difficult when they encounter an error.
  • The resources are hardly available.
  • It has not been updated in a few years.
  • Beginners find it most difficult in learning.

Apache Cordova

It was originally created or framework in mobile application it was rebranded as one of the open source tools which are comprised of the debugger, testing tools, and popular web technologies. The device’s capabilities have debunked in the recent past with the inclusion of a wide range of plugins and instant messaging allows them to share update frequently.

Pros

  • The code can be reused for all across various platforms.
  • It targets multiple platforms with a single code database.
  • The code works in all types of software such as Windows, Ios, Blackberry and Android.
  • It gives developers access to the latest features of apache by cutting the middle man.

 Cons

  • Cordova is a UI and framework agnostic (it leaves all the work of designing and logistics to a developer).
  • Considering a framework it does a bit more hand-holding.
  • Performance error may occur due to graphics intensive apps.

Flutter

Flutter is an open-source mobile application development SDK created by Google. They are used for development of android application and ios application. It runs on Dart virtual machine which features just-in-time execution engine. It uses single code base for creation both Android and iOS apps. It has many features such as Hot reload, equipped with native ARM and it has highly effective portable GPU rendering UI to work on latest interfaces. It is still in developing phase so there is not much information available about it but it may become one of the top development tools in cross-platforms. It sure is worth to keep an eye on it


The above-given tools are not ranked in order .they are some of the top tools than others they have reviewed and rated better than other tools available in the market. If someone wants to classify them they can only be categorized as a type or for its specific purposes the rest depends on you.

java vs kotlin

WHY CHOOSE JAVA OVER KOTLIN FOR BEGINNERS

Hello, welcome to Bunkerspoint. In this post we are going to discuss in detail about java and kotlin.

Programmers who want to become Android Developers are in a dilemma to choose Android Studio with Java or Kotlin. Since Google announced Kotlin as the official language for Android Development, many of the beginners arises with a question that whether to start with  java or kotlin for Android Development.

JAVA VS KOTLIN:

Java is a very popular procedural programming language  used for software development, application development and much more. It is object-oriented, secure and platform independent ,on the other hand Kotlin is a modern functional programming language. It is object oriented and has full support for java interoperability. It runs on the JVM and uses java libraries and tools. Kotlin was developed for Android Developers as the need of modern language in Android Development.

So you’ll be thinking that Kotlin offers great features for android developers as it was designed for the needs of Android Developers  so why shouldn’t i learn Kotlin and develop android apps written in Kotlin but if you are a absolute beginner in Android Development then learn java first.

WHY LEARN JAVA FIRST:

When you start learning Android Development you’ll need guides ,tutorials etc. Since java is an old popular language and its community is large you’ll get more help from java android tutorials, resources etc. whereas Kotlin community is still growing so kotlin android tutorials ,resources etc. would be less and you may not get that much help.

  • Java has large number of resources and libraries.
  • Has a lot of core features.
  • It is open source.
  • Java has a lot of open source Frameworks and Classes which helps developers.

Kotlin also have same features but for beginners java would be perfect because of large community and resources to learn and make most of it.

WHEN TO SWITCH FROM JAVA TO KOTLIN:

After building few projects in Android Studio using java ,do switch from Java to Kotlin and build some projects in Kotlin to understand the difference between both the languages. Even more you would also come to know which language better suits you for developing android apps.

CONCLUSION

Java over Kotlin is  a suggestion for beginners but intermediate/professional developers may have already switched from java to kotlin because kotlin is less verbose compared to java , null safety unlike java has null pointer exception and much more. Every language has its merits and demerits.Developers would choose a language based on the performance and need of a particular language.