How it was built?
As we had to create a mobile app that was compatible with already existing TV shows that had established content, effective communication between us and clients' developer team was crucial. We had to be in touch all the time because all changes in the webapp platform they were executing could affect the specifications and dependability of the mobile app we were developing. It was very important to be always updated.
In this project Luxnet used iterative Scrum model, so client was always updated and had a chance to see and accept all milestones.
It took us about two weeks to create prototype and necessary specifications in Zeplin and Sketch where designers quickly turned their designs into powerful specs and guidelines, while developers accessed all the resources they need in a single location and generated code snippets that were tailored to the platform.
After that it took us three months to develop the app both for iOS and Android platforms.
The project was written in native Java for Android and in swift for iOS 9+ versions with PHP and Symfony3 used. It enabled "Teleportal" to increase tenfold its performance while considerably simplified development. And throughout the process, the "responsive" effort adopted by app was respected... This user-centric approach aims to automatically adapt content to each project within application without implicating additional development.
Designing an app that automatically adapts to any type of content doesn't complicate maintenance. On the contrary, flexible architecture of "Teleportal" allowed our developers more efficiency since the entire system uses a single code base. This obviously greatly simplified the back end as well. The features are integrated only once, without necessary duplication by platform type.
The most pragmatic of the reasons for adopting the Symfony was about facilitating the way people will customize and extend the platform. Even if "Teleportal" was doing a good job, we still wanted to take any opportunity to do an even better job.
For testing and benchmarking we have used Yandex-tank. It allowed us to collect data about each component work times and wait times. Than we visualized them on critical path and found all bottlenecks avoiding them to migrate in new releases. Yandex-tank help us to collect a lot of metrics and found correlations to concentrate on the critical path.
Our stress challenge was to maintain 40 000 simultaneous users who are logged from social networks. In reality we couldn't test it, due to risk to be banned. All other non-standard requests which was not processed with existing specialized solutions, were forecasted, scripted and our servers were optimized for them.
We also have used Firebase for pushes and analytics of our application. Thanks to that we could easily access and share the data.
In Luxnet we also think, that DevOps is necessary to meet the current needs of companies developing software, websites and applications. That is why we always emphasize it in our approach.
With the traditional waterfall model, the requirements for software were clear and well-defined in advance. But today requirements change very often, and software must be developed at an ever increasing pace. Not only must software and web applications be marketed faster, but it must also be possible to constantly update them, easily add new features and fix any bugs found.
Our team of developers were not the only one to react quickly and efficiently; the operational team, which has to deploy and monitor the new applications, always react the same way.