Getting Started.

The IDE will automatically add Kotlin Dependency into your projects and convert the code into equivalent Kotlin code.

Kotlin will make Android development faster and interesting. Kotlin is already being developed by big companies. Kotlin is compatible work interoperation with Java. Kotlin is available with Android Studio 3. Kotlin is very similar to Java. Kotlin is a modern language with expressive and minimal code.

Code Example:

package hellome
fun main(args: Array){
println("hello me")
}



Free English Malay Dictionary with offline functionality. You can capture and translate from your camera phone. You can also chat and learn new language with your friend with your friends.

This is the new version of original Free English Malay Dictionary. Use this dictionary apps to improve your English and learn together with other student from Malaysia.



Download at Playstore

https://play.google.com/store/apps/details?id=gnu.englishmalay.androidv2

English Malay Dictionary 2

by on 11:39 AM
Free English Malay Dictionary with offline functionality. You can capture and translate from your camera phone. You can also chat and le...


If you try to implement FirebaseRecyclerAdapter, you might have this error on the Android version 6 smartphone using released and signed APK. This is because of PRO GUARD. To fixed this issues you need to change the viewHolder class from private to public. Don't forget the enable Google Auth in firebase console and enter the released SHA1 in the firebase setting




FATAL EXCEPTION:

main
                                               
java.lang.RuntimeException: java.lang.IllegalAccessException: java.lang.Class is not accessible from java.lang.Class
                                                     at com.firebase.ui.database.FirebaseRecyclerAdapter.onCreateViewHolder(FirebaseRecyclerAdapter.java:177)
                                                     at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6367)
                                                     at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5555)
                                                     at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5440)
                                                     at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5436)
                                                     at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2224)
                                                     at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1551)
                                                     at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1511)
                                                     at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:570)
                                                     at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3583)
                                                     at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3312)
                                                     at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3844)
                                                     at android.view.View.layout(View.java:18014)
                                                     at android.view.ViewGroup.layout(ViewGroup.java:5911)
                                                     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1080)
                                                     at android.view.View.layout(View.java:18014)
                                                     at android.view.ViewGroup.layout(ViewGroup.java:5911)
                                                     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:344)
                                                     at android.widget.FrameLayout.onLayout(FrameLayout.java:281)
                                                     at android.view.View.layout(View.java:18014)
                                                     at android.view.ViewGroup.layout(ViewGroup.java:5911)
                                                     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1742)
                                                     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
                                                     at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
                                                     at android.view.View.layout(View.java:18014)
                                                     at android.view.ViewGroup.layout(ViewGroup.java:5911)
                                                     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:344)
                                                     at android.widget.FrameLayout.onLayout(FrameLayout.java:281)
                                                     at android.view.View.layout(View.java:18014)
                                                     at android.view.ViewGroup.layout(ViewGroup.java:5911)
                                                     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1742)
                                                     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
                                                     at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
                                                     at android.view.View.layout(View.java:18014)
                                                     at android.view.ViewGroup.layout(ViewGroup.java:5911)
                                                     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:344)
                                                     at android.widget.FrameLayout.onLayout(FrameLayout.java:281)
                                                     at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:3175)
                                                     at android.view.View.layout(View.java:18014)
                                                     at android.view.ViewGroup.layout(ViewGroup.java:5911)
                                                     at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2787)
                                                     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2480)
                                                     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1544)
                                                     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7619)
                                                     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
                                                     at android.view.Choreographer.doCallbacks(Choreographer.java:686)
                                                     at android.view.Choreographer.doFrame(Choreographer.java:622)
                                                     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
                                                     at android.os.Handler.handleCallback(Handler.java:739)
                                                     at android.os.Handler.dispatchMessage(Handler.java:95)
                                                     at android.os.Looper.loop(Looper.java:148)
                                                     at android.app.ActivityThread.main(ActivityThread.java:7407)
                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.ja



  • API 25 (Android 7.1) – Nougat, released December 2016. 
  • API 24 (Android 7.0) – Nougat, released August 2016. 
  • API 23 (Android 6.0) – Marshmallow, released August 2015. 
  • API 22 (Android 5.1) – Lollipop, released March 2015. 
  • API 21 (Android 5.0) – Lollipop, released November 2014. 
  • API 20 (Android 4.4W) – Kitkat Watch, released June 2014. 
  • API 19 (Android 4.4) – Kitkat, released October 2013. 
  • API 18 (Android 4.3) – Jelly Bean, released July 2013. 
  • API 17 (Android 4.2-4.2.2) – Jelly Bean, released November 2012.
  • API 16 (Android 4.1-4.1.1) – Jelly Bean, released June 2012. 
  • API 15 (Android 4.0.3-4.0.4) – Ice Cream Sandwich, released December 2011. B
  • API 14 (Android 4.0-4.0.2) – Ice Cream Sandwich, released October 2011. 
  • API 13 (Android 3.2) – Honeycomb, released June 2011. 
  • API 12 (Android 3.1.x) – Honeycomb, released May 2011. 
  • API 11 (Android 3.0.x) – Honeycomb, released February 2011. 
  • API 10 (Android 2.3.3-2.3.4) – Gingerbread, released February 2011.
  • API 9 (Android 2.3-2.3.2) – Gingerbread, released November 2010. 
  • API 8 (Android 2.2.x) – Froyo, released June 2010. 
  • API 7 (Android 2.1.x) – Eclair, released January 2010. 
  • API 6 (Android 2.0.1) – Eclair, released December 2009. 
  • API 5 (Android 2.0) – Eclair, released November 2009. 
  • API 4 (Android 1.6) – Donut, released September 2009. 
  • API 3 (Android 1.5) – Cupcake, released May 2009. 
  • API 2 (Android 1.1) – Base, released February 2009. 
  • API 1 (Android 1.0) – Base, released October 2008. 


It is very easy to use Firebase realtime database to create realtime application such as chatting or multiplayer games.

1. Include the classpath for google-services in your gradle files.




2. In your app.build.graddle add the firebase-core and firebase-database and apply the plugin.



3. Now you can setup the UI and the logic code to access your real-time database.

Fore more detail https://firebase.google.com/docs/database/

NewImage

 

From 18 April 2017, the Manage Releases page will fully replace the APK page and will become the only way that you can manage your app's APKs, review release history and roll out your app to production, alpha or beta

 

NewImage

 

It is a new way to upload your APK to Google Play Developer Console. You can publish the alpha, beta of your apps.  Its help to manage release in stage to avoid bad review and bad rating from apps crash.

 

NewImage



This is a unique Angkatan Tentera Malaysia military ranks android apps. Now you know the ranking and the badge of Malaysian military.  You can select Indonesia military rank as well and make a comparison. Improve your general knowledge on the go and make a better conversation with veterans.


Categories:
Angkatan Tentera Malaysia (ATM)
  • Tentera Darat Malaysia (TDM), 
  • Tentera Laut Diraja Malaysia (TLDM)
  • Tentera Udara Diraja Malaysia (TUDM).



Angkatan Tentara Indonesia (TNI)
  • Angkatan Darat TNI Angkatan Darat
  • Angkatan Laut TNI Angkatan Laut
  • Angkatan Udara TNI Angkatan Udara


NewImage

 

App widget is application that you can view on the home screen. You can receive instant update of the application from your home view. It is a special kind of user interface that are publish by using App Widget Provider. 

To Create App Widget, we need to use the following object AppWidgetProviderInfo object ,AppWidgetProvider  class implementation and XML view layout.

First, you need to declare AppWidgetProvider in your application AndroidManifest.xml.

Second, you need to add the AppWidgetProviderInfo Metadata define in the projects res/xml folder and set the minWidth,minHeight and ect.

Next, you must efine the initial App Widget in XML and save it in the res/layout folder. It is  very simple to create app widget layout if you are familiar with the Layout in Android Studio.

You also need to targetSDKversion > 14 and and set the widget_margin in your layout and save it in the res/values/dimens.xml.

You also need to use the AppWidgetProvider Class to extends the BroadcastReceiver to handle the App Widget Broadcast. Use the onUpdate() method call as essential setup. You also need to use the other method call such as onAppWidgetOptionsChanged(), onDeleted(Context,int[]) and onEnabled(Context) ect.

You also need to configure the setting when user adds new app widget. Create app widget configuration Activity in your Android Manifest files. You also need the update the app widget from the configuration Activity, setting a preview image and using app widgets with collections.

 

 

 

Create Android Widget

by on 5:58 AM
  App widget is application that you can view on the home screen. You can receive instant update of the application from your home view. I...

NewImage

You can use AlertDialog class that existed since API level 1. It is the easiest way to display important information to your user.

 

AlertDialog.Builder builder =new AlertDialog.Builder(this);

NewImage

It is estimated that there are more phone than people in 2017. There are 7.4 billion mobile phone and 88% from smart phone. Smartphone penetration usage double from 2013 (1.27 billion) to 2017 (2.26 billion). It is projected that more than 2.6 Billion smartphone user in 2019.  

Smartphone device ownership will growth significantly in China and India and will overtake United States  by 2019 in term of smartphone sales. In south east asia, Indonesia is the one of the leading country that leading the smartphone growth.

There is significant mobile advetising opportunity as dollar will follow consumer. With the growth of mobile phone user and people spend most of their time on smartphone compare to other channel such as newspaper, radio, tv or Internet. Its is estimated that there are about $25billion market opportunity in United states.

Global ads spend will grow 31% you in 2017. Mobile in app ads will grow to 3.2x . It is estimated that value of in app advertising market will reach $101 billion by 2017. It is good opportunity for mobile apps developer to tap in this key opportunity.

90% apps downloaded today from the play store are FREE. Onlye 2.3% of mobile gamer spend money in apps.

Recommendations (word of mouth) from friends or family (offline or online) are still the top place to find out about new apps.  The decision to install an app largely comes down to reviews/ratings and memory space and cost of the apps.