As a mobile software engineer, I must develop mobile apps that has these capabilities:
- Easy to use.
- Efficient and effective.
- Storage and memory friendly.
So what should we do in order to meet those requirements in our apps? Here I give you some tips.
Material design is becoming standard in Android application. With the release of AppCompat and Design Support Library, developers can use it easily to implement material design in Android Application.
With backward compability support until API Level 7, we can bring consistent design across various Android version.
In this talk, I showed various tool and library projects maintained by Onebit engineers. We also discussed checklists and best practice on maintaining and contributing to software projects in open-source world.
Android application has unique identifier called package name to prevent duplicate installation. The standard convention name for Android package name is reversed web URL.
In development process, developers may need to separate application into some versions for testing purpose. For example, we need beta version to be tested before it’s released on the marketplace. We can separate them using different flavors definition in gradle script.
But it can be problem when we use the package name in the manifest file. So we may need to adjust the manifest too.
For example, if we use GCM (Google Cloud Messaging) to enable push notification we need to add permission with unique name (so it has to be the package name). So for different package name it need different permission or there will be problem with duplicate permission. Here we need to define another permission with specified package name and remove the previous permission definition when merging the manifest.
These are the sample code of different manifest file for different package name in different flavor.
<uses-permission android:name="com.packagename.app.permission.C2D_MESSAGE" />
<uses-permission android:name=”com.betapackage.app.permission.C2D_MESSAGE” />
One of the toughest tasks after our apps downloaded is keeping our user engaged and interested with our apps. Here is some tips from Akhyar, our seasoned Android Engineer, about how to increase user engagement for mobile apps.
A few years ago, Joel Spolsky created a test to measure how good software development team. Many engineers or companies use this test to evaluate quality of software development team or company to work for. Some companies also use this test to assess their own software development quality and determine to-be-improved area.
How about measuring non-technical aspect such as their culture? Continue reading
As Mobile Engineer, we always use 3rd party or open source library to make our development process easier and faster. But, what about contributing to it? Here’s my talk about contributing to mobile library distribution via jCenter (Android) and Cocoapods (iOS).
Swift has an incredibly powerful idea, protocol-oriented programming. This post is my talk about how this concepts protocol-oriented programming will benefit predictability, performance, and productivity.
My previous post has explained lot about MVP pattern in Android development. This post just want to share my talk in Onebit brownbag session about MVP pattern in Android development.
You can find my talk here.
About golang :
Go, also commonly referred to as golang, is a programming language developed at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. It is a statically-typed language with syntax loosely derived from that of C, adding garbage collection, type safety, some dynamic-typing capabilities, additional built-in types such as variable-length arrays and key-value maps, and a large standard library.
I’m starting to use golang language in some of Onebit’s projects. I have learn this language before, but only for introduction, something like “Hello world”. This time, I’m learning it deeper, and just as the title said, learning golang is hard. Continue reading