01 Mar Case Study: Mobile Product for App Company
The client is the simple and modern storytelling app on mobile. Product allows creators to combine video, images and text together to create the most dynamic medium available. Product was developed in 2014, development team was released. Akvelon is taking product development and deployment responsibility at the moment for web (node.js), rest APIs (java), iOS and android clients. The client’s main focus is the mobile apps.
The client contracted Akvelon for implementation (features, bug fixes), delivery of entire solution.
Web: within the 4 months Akvelon went into the existing code base, fixed existed bugs, developed new features as like swiping in between story pages, started working on the new feature called “Geo location”. Web app has up to 15 screens and limited in comparison with mobile apps. Application allows users to read stories, perform search by “popular”, “most recent”, “users”, follow users, like, comment stories and share to Facebook, Pinterest, twitter or share stories by code snippet.
Web solution is covered by unit and integration tests.
API layer: is written in java, it has big code base, it has wide range of apis covering all aspects of the product (web, ios, android clients are using api to get and post data through). API layer has more than 3k of unit tests and some integration tests
iOS/android client: code was originally written using Objective-C (Android – java), now some parts of the app were implemented using Swift. Application has about 50 screens implementing flows like create story, create collection, comment story, search for story or user, view user’s details, follow user’s activities, change account password, connect and share to social networks)
Benefits and Results
The team took product without documentation support (customer doesn’t have product documentation, flow diagrams, architecture specs) and already delivered few web client releases.
Mobile team is working on the next product release.
APIs updates were released already once. Team has prepared solution architecture to be able to manage dependencies.
Akvelon is working on proposals to the customer with respect to new functionality and improvements.
Web frontend: node.js, react.js, backbone.js, flux, CSS, heroku
API layer: java, Dropwizard Framework, elasticsearch, logstash, redis, graphite, zencoder, librato, hystrix, jooq, RxJava, Madril, Amazon SNS, Amazon S3, cloudvision, bugsnag, heroku, postgres db, mocha, Jackson
iOS client: Xcode, Objective-C, CocoaPods, Fabric, Firebase, AFNetworking, Fabric, CocoaLumberjack, MagicalRecord, TwitterKit
android client: Firebase, Crashlytics, FCM push notifications, Dagger 2, Retrofit, OkHttp, Jackson, ButterKnife, Exoplayer, Facebook, Twitter SDKs