Creating the Android App Catalog
Apperian has reached a milestone with the release of the Android version of the App Catalog. EASE in now available to users one of the most popular mobile platforms on the planet: Google’s Android. It was an interesting journey. Many decisions had to be made.
First, we wanted to make sure the App Catalog felt like an "Android app" and not a port of an iOS app. This is why we made sure to provide a familiar experience to users of both Android v2.x and 3.x systems. In order to do this we developed the user interface using the Honeycomb platform. Fortunately, we were able to share a lot of code between the two versions, for example, code not related to the UI.
The Android app work was a team effort, anchored by Android gurus who could provide guidance. But even the newer team members found the Android platform to be easy to pick up. Overall, the development team was pleased by the overall simplicity and ease of implementing Android-specific features, such as notifications. Everyone -- including our developers, marketing and sales teams -- is pleasantly surprised by how easy it is to distribute applications on the Android platform.
This is not the end of the road, however. More features are coming, and we're already developing for IceCream Sandwich and looking at other future platforms. — Leon Amdour
Well, let’s put it this way: many of our team members had developed Android apps before, but this time it was special. For newer members of the team this was the first time developing an enterprise Android application. You may ask, what are the differences?
Enterprise applications address end users with needs that are different than consumer apps. For example, enterprise apps have specific security requirements. In addition, we wanted to make it easy for businesses to customize the user interface and brand the App Catalog. Enterprise requirements make an enterprise application somewhat more complex -- and therefore more exciting -- to develop and deliver than a basic consumer app.
One of the critical features we worked on was designing a customizable UI. Since many of our team members had a web development background they were already familiar and comfortable with CSS and HTML. Android uses similar concepts, e.g., using style files similar to CSS, and we referred to them when defining UI elements. Most of the customizable UI elements are stored under the resources folder of the project, which makes it easy to manage. There are specific sub-folders under the esources folder, which are used to store different type of UI assets. Here are couple of interesting features we used in order to come up with a flexible UI.
- Using colors.xml. Colors.xml is used to define different colors used inside the application and stored under resources/values. We used the file to defined the theme colors of our application, and everywhere in our element and style definitions we used these predefined colors. For example, if my theme header bar and buttons have the same color, we would define a color in colors.xml and call it mainColor and set it to the color we want to use as our main theme color. Then, in styles.xml for the buttons and header bar, we would use mainColor. This way when we want to customize the application and use a different color for our theme we don’t have to change everywhere. We simply go to colors.xml and change one value: the changes will be picked up everywhere throughout the application.
- Drawable Objects. The second cool feature of Android UI design is drawable objects. Under the drawable folder, we can define our own custom objects that can be used and referenced in our layouts. We were able to create many reusable UI components, which makes UI design easier, faster and more maintainable.
Let us know what other aspects of developing Android applications you would like to learn about and we will be happy to share our experience. — Ashkan Nasseri