WinterFriend iOS App Development Share: Mobilunity Score Awaiting client review n/a Date Published 18 February 2020 Reading Time 7-Minute Read It’s a story of how and why one of our mobile app development teams has developed a navigation app for snowboarders and skiers. The Problem Any person, who has ever spent a winter vacation at a skiing resort, has encountered the problem of locating friends or relatives and gathering them all for a common lunch or coffee break. And for larger groups, this problem can be even worse. With advancements in mobile technologies, connections have become available in almost every corner of the globe, and with this, you would assume that the easiest option would be to give your friends a call. This may be true, but what if you are spending your winter vacation abroad? Roaming charges and inconsistent connections could cost you hundreds of dollars and eat into your vacation budget. Our mobile application development team decided to take on this challenge and develop a GPS phone tracking app, which would allow its users to: Easily add contacts of friends Locate and track your team on slopes Communicate with friends Send instant alarms in case of emergency Avoid spending money on calls The outcome of the project is a new skiing app we call, Winter Friend, available for iOS which we encourage you to download on the App Store. The Team Project Manager, Designer, Backend Developer, iOS Developer, QA Engineer. Market Research & Business Analysis As with any internal project, we started our GPS app development process with initial market research. Our Project manager analyzed popular skiing apps with similar functionality to define the key advantages of the new product and the Top 4 apps were compared using the following criteria: Criterion Find My Friends! Friends tracker Phone tracker for iPhones Friend mapper The analysis showed that the apps currently on the market lack two main features: The ability to communicate directly with friends and send them alarms/alerts A database of detailed resort maps And these features were fully implemented in our new app. Technical Requirements Once we identified and agreed upon the key advantages of the winter app over its competitors our Project Manager proceeded to write technical requirements for the mobile application development project. This included defining the milestones for the MVP version of the app. At Mobilunity we use various tools for project planning and tracking, and one of them is Redmine. Here is a screenshot of the project: UI/UX Design In line with project requirements, our team proceeded to develop the design for the sports app using Photoshop. Our designer prepared the wireframes and 13 app screens in total which were required for the following modules: Registration/log in through Facebook, Friends, Current resort map, List of resorts, Additionally, we developed a logo for the app, default images for the start and profile screens and a set of icons. To provide a better user experience we use InvisionApp for all of our design projects, you may review the screens for our app here: Backend App Development The process of travel app development was divided into 2 parts: backend and frontend development. With both teams working on Google Maps integration, Facebook authorization, and GPS data procession. The Backend team was tasked at solving a list of issues to allow the app to do the following: Send user profile data to the server including the fields- birthday, first_name, last_name, photo, & email through Facebook’s API, Integrate Google Map’s API to receive the maps of the most popular resorts, Change API to POST parameters list, Collect, store and receive GPS data to be reflected on the map, Implement the alarm functionality using a custom push notification library. Frontend App Development Our iOS app developers were working on the following functionality: App authorization through Facebook, Retrieve information on resorts through Google Maps API, Get information about friends via Facebook API, Send GPS data on current location to the server, Implement friends search in the app, Slice all designs for iPhone ski resort app, Add sound to alarm messages in the app, Optimize the app for lower battery usage. Solving problems with the integration of third-party services is not an issue when you hire an iOS app developer with Mobilunity! Testing & Bugfix Once our Objective C application was ready for testing, it was thoroughly reviewed in developer mode by our QA team on Apple devices including iPhone 5, iPhone 6, and the iPhone 6S. The following features were reviewed for bugs: User registration, User’s friends’ list, Ability to display user and his friends on Google Map, User profile, Search through the friends list, Alarms, Resort list, Webcam/web site. 11 bugs were reported and fixed in the process of testing, and our ski track app was ready to go over to test flight on the AppStore. It should be noted here, that in-depth testing is an integral part of the mobile app development services we provide. Promotion Our marketing team’s task was to promote the new ski app in order to get more app downloads. The team started working according to the following plan: Analyze competition and define app keywords, Optimize the AppStore description, Launch a dedicated website for the mobile application, Plan the app’s landing page design, Create the app’s demo video explaining features of the new application, Find relevant portals dedicated to winter sports and interested in mentioning new apps in articles, Submit the app for review to specialized websites. The outcome of this activity was the launch of the new app website, which explains in detail how the app works and who may benefit from using it. Challenges & Solutions GPS app development with Google Maps and Facebook integration has a number of constraints, which should be taken into consideration. Our MVP mobile app development team has faced and successfully solved several of them: Friends list Adding friends to your account is one of the common problems when you want to use a new social app. That’s why our Objective C developer decided to use facebook’s API for user registration. When a user logs in, using their Facebook account, the app automatically gets a list of friends, who use the application. Maps Currently, the market provides plenty of map services, so there is no need to create your own. Leaders in the industry include Google Maps, Yandex Maps, Apple Maps, and Open Street Maps. Some of the services are free, and others require payment for some of the functionality features. For example, Apple Maps require an iOS device to use them properly, so it wouldn’t be the best solution if you are looking for cross-platform app development. Yandex Maps are well detailed but only for the former Soviet Union. Open Street Maps is less detailed so it would not be as useful with an app designed to help you find your friends. After a critical analysis of all existing features, we decided to use Google Maps API. High battery consumption Geolocation is a process that, if done incorrectly, can cause a major strain on a device’s battery. To avoid this issue, our team set the accuracy to 20-30 meters, increased the intervals between requests to the server, and implemented an algorithm that monitors the customer’s location regulating when location data is sent to the server. Network load To avoid overloading the network with constant downloading of new images, our developers implemented image caching, and Core Data object graph framework to minimize Internet consumption after the applications first launch. Technologies Used The new snowboarding app Winter Friend became a mix of Facebook and Google Maps integrations elegantly coded using Objective C as its programming language. The key technologies we used included: GPS for location tracking, Facebook API for registration, authorization and friends list, GoogleMapKit based on Google Maps API for resorts map visualization and user geo location definition, Objective-C for iOS app coding, AFNetworking to send the data to the webserver, Core Motion and Core Location iOS frameworks to receive and process motion data, FastImageCache iOS library for storing and retrieving images, Core Data iOS framework for image optimization, Google Analytics for Mobile Apps for app analytics.