event calendar - android app development

10
EVENTS CALENDAR ANDROID APP DEVELOPMENT CASE Managing professional events became easier with the new SEARCH-ENGAGE-ADD (S.A.E.) Android app.

Upload: mobilunity

Post on 11-Jan-2017

48 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Event Calendar -  Android App Development

EVENTS CALENDAR ANDROID APP DEVELOPMENT CASE

Managing professional events became easier

with the new SEARCH-ENGAGE-ADD (S.A.E.)

Android app.

Page 2: Event Calendar -  Android App Development

PROBLEM

1

Project Team

Project ManagerUI/UX DesignerAndroid DeveloperQA Engineer

https://play.google.com/store/apps/details?id=com.mobilunity.professionaleventscalendar&hl=en

Having an active social life full of relevant events, is an important part of any ambitious entrepreneurs life. The problem lies in managing those events, so that you can attend the events that are relevant to you and your business, while not neglecting others that you may be interested in. Various conferences, meetups and seminars help to build the brand and improve its visibility so it's no surprise that business professionals and marketers alike, find it beneficial to participate in these events often. Event search services like Eventbrite.com and Meetup.com partially solve the problem of finding the most interesting events, but they don’t allow you to keep an entire list of events in one system. The Mobilunity team decided to take things a step further and has provided the ultimate solution for your planning needs, by creating the app S.E.A. Events Calendar.

Our Android mobile development team worked on the app, which would allow:

Searching for the relevant events on all platforms ever existing (for v1 we did only 2 platforms - using Meetup API and Eventbrite API integration)

Filter the events by location, date, topic

Add events to the personal calendar on a phone

Notify user on upcoming event

The new app got a simple abbreviation because of its functions: Search, Engage, Add with events delivered by the app.

“Visiting events is a powerful tool for the growth in any sphere of activity. It may be workshops, lectures, exhibitions or just meeting. We have tried to make an application that will help you not to miss any of the events of your interest in any corner of the world.”

AleksandrProject Manager

Page 3: Event Calendar -  Android App Development

2

THE CASE STUDY

Before our Project Management team started to compose the business logic of the events app, the team conducted thorough market research on possible solutions already available on the market to identify key problems they face and features they are lacking. Our market research included comparison of 4 popular apps:

Our analysis showed that events apps currently present on the market lacked such features as:

1. Collecting events from different sources

2. Showing locations of events on the map

3. Booking tickets

The team decided to develop an app, which would incorporate all of the features that other apps lack. Our Project Manager advised us to take advantage of the large pool of events posted every hour on Meetup and Eventbrite’s website and build the app based on their APIs. To ensure the APIs could fulfill business and technical needs, we conducted additional research that would dive deeper into the technical specifications of both services:

MARKET RESEARCH &BUSINESS ANALYSIS

Criterion Meetup EventbriteAll events in the city

Nearify - Discover Events

Collect events from different sources

Search and sort events

Store information about the event

Add event to the personal calendar

Push notifications

Location on the map

Booking tickets

-

+

+

+

+

-

-

-

+

+

+

+

+

+

-

+

+

+

+

-

-

-

+

+

+

+

-

+

Page 4: Event Calendar -  Android App Development

As the limitations on the number of API calls allowed, met our projected load on the system, we decided to proceed with building the app based on the integration of both APIs.

Feature Meetup API Eventbrite API

Events search

Local search

Event information

Number of events in response

Response limitations

Limitations of frequency of requests

Search by GPS coordinates

Search by city and country

Ability to get the list of cities

Title of event in text, description in html or text

Max (and default) number of events is 200.

-

Max 30 requests within 10 seconds

Search by GPS coordinates

Search by city, region and country

Ability to get list of countries and regions

Title and description of event in text and html

Max number of events is 50.

No information on event location. Should be requested through a separate "venue_id" request: "13786978"

The default limit is 24,000 calls per day and 1,000 calls per hour

TECHNICALREQUIREMENTS

Having all basic app requirements gathered, our Project Manager proceeded to writing technical documentation for further Android app development, preparing wireframes and decomposing the project in Redmine. Here is a screenshot of the project:

Screenshot of Professional events calendar project in Redmine

Page 5: Event Calendar -  Android App Development

UI/UX DESIGN

https://www.invisionapp.com/

Having clear requirements and user stories defined, our mobile UI/UX designers were able to prepare the prototypes, UX designs and UI map. The Apps design was done according to the requested Android screen sizes in 3:4:6:8 scaling ratio: for medium-density (MDPI), high-density (HDPI), extra high-density (XHDPI) and extra extra high-density (XXHDPI).

https://www.invisionapp.com/

The UI map was drawn for the following user story:

User sees a list of available locations

User enters their preferred location

App generates list of events pulled by APIs

User filters events by date, category and subcategory

User gets full information about the event

User joins event and adds it to the list of own events in the app

User sees events in the calendar selecting the date or week in the month view

All designs were added to InVision to deliver true user experience of interacting with the app. Traditionally we use invisionapp.com to show mockups and prototypes to our clients.

Additionally our mobile app designers prepared a set of icons to be used on Google Play along with the screenshots and promo materials needed for app presentation.

Part of app presentation done in PhotoShop

Page 6: Event Calendar -  Android App Development

UI map of Events Calendar app done in PhotoShop

List of Events1 List of added events2 Event Info3 Join Event4

Filters5

5

Filters - Date6

Calendar - Date9

9

Calendar - Week10

Filters - Categories7 Filters - Subategories8

1

Page 7: Event Calendar -  Android App Development

ANDROID APP DEVELOPMENT

According to the plan, the first version of the app covered the functionality of pulling events through EventBrite and Meetup APIs, while the 2nd version would already show locations on the map and implement tickets booking logic.

Our Android developers built the app MVP, which met all the functions below:

Collect events from different sources through Eventbrite API and Meetup API integration.

Search through the events, and ability to sort them. All the events are displayed as a list, with ability to search, and sort them by city, by date, by topic, etc.

Store information about the event: location, subject, description, etc.

Add an event to the user's personal calendar. The System has a personal calendar for every user, with all the data about interesting events. If the user ‘likes’ any event the event is added to their personal calendar.

Send push notifications. System sends push notification about start date (time) of the event 1 hour in advance.

The development for the Events app was done in Android Studio, plugging in third-party libraries for image processing and database querying such as Retrofit, Android Sliding Up Panel, Material Calendar View, OrmLite and Picasso. Crashlytics was integrated for app monitoring and crash reporting.

TESTING & BUGFIX Once development was finished, the app was passed to our QA team for thorough testing. Our Project Manager defined the use cases and each of them were tested manually on several Android devices with different screen resolutions.

Page 8: Event Calendar -  Android App Development

A QA Engineer tested the app for the ability to:

Register a user

Log in with existing account

Search through events from Meetup and Eventbrite

Filter events

Add and remove events to personal calendar

Receive push notifications

Map categories

Logout

17 bugs were detected and fixed during the initial testing and then the app underwent regression QA confirming that the app was bug-free within the set of defined user stories.

On the 27th of June the new Android app was uploaded to Google Play, and it’s now available for free download for all users. At the same time Mobilunity’s marketing team began planning promotion of the new app. The team came up and executed the following plan:

Analyze competition and define app keywords

Optimize the Google Play description

Create app demo video explaining key features of event app

Create portfolio item showcasing results of the team work

Launch the app demo site eventscalendarapp.com

Prepare content for the app landing page and suggest a design concept

Find and approach news portals dedicated to events management

Thanks to these additional activities Android users found out about the new app and learned the key benefits of using it from the explainer video below: https://youtu.be/cBqs2qY0-90

PROMOTION

Page 9: Event Calendar -  Android App Development

CHALLENGES & SOLUTIONS

As in any development project, we faced a number of technical problems that our Android developers were able to solve, while building S.E.A. These challenges included:

Getting information from different sourcesSince the app receives information from multiple sources, developers unified all data and merge categories,

types, groups, etc. This allowed us to show the user a detailed list without duplicates and junk information.

Receiving data in different formatsDifferent APIs send source data in different formats and to avoid displaying information in 2 different

formats we came up with our own template for the event. When the system receives the data from the

source, it transfers all the information to the proper format, so the user doesn’t even notice that information

comes from 2 sources.

Services authorizationAuthorization on meetup.com and eventbrite.com needs to be done on the web page, which creates a

distraction for mobile users. So we implemented the WebView: a View that displays web pages in apps. This

class uses the WebKit rendering engine to display web pages and includes methods to navigate forward and

backward through the history, zoom in and out, perform text searches and more. It allows the system to

provide all the needed actions without using a browser.

Refreshing events list with new recordsThe System gathers information about the events within the available API records limit in one request. Some

sources have more records for the time period, some of them - less. But on the user side the system was

designed to display all events and have them ordered by date. Our team implemented a feature, which sorts

events by date and cuts duplicates, which were previously loaded.

Page 10: Event Calendar -  Android App Development

TECHNOLOGIES USED

This event search app provides a mixture of integrations based on the powerful Android SDK. To bring this app to life, our team dealt with:

IDE - Android Studio

Programming language – Java

Meetup.com API and Eventbrite.com API

Third party libraries:

Retrofit - a type-safe REST client for Android;

Android Sliding Up Panel - a draggable sliding up panel;

Material Calendar View - a Material design back port of Android's CalendarView;

OrmLite - provides simple and lightweight functionality for optimizing injection of Java objects to SQL databases, while avoiding the complexity and overhead of more standard ORM packages;

Picasso - a powerful image downloading and caching library for Android;

Crashlytics - the most powerful, yet lightest weight crash reporting solution.

Google Analytics - mobile analytics

InvisionApp.com and Adobe Photoshop for app UI/UX design

https://mobilunity.com [email protected]

Are you dreaming about an app with complex API integrations?Let’s build it together with Mobilunity team!