Articles tagged with
ios
12 Jan 2022
The source code of Allegro iOS app for buyers used to be divided into separate modules hosted in multiple repositories
(polyrepo). The
source code was migrated to a monorepo a few years back along with the history of all repos that constituted the app.
Updating source code of a module on one repository could affect another module hosted on a separate repository.
Versioning modules and propagation of dependency update led to long release process of the entire application.
Our main
repository for the iOS application thus became our monorepo. After 9 years of development of the app the repo size has
grown
enormously and the git clone command became a nightmare taking too much time. We had a possibility to shrink the
project size during the
migration from an on-premise to an external git repo hosting provider.
28 Dec 2020
Programmers who have ever developed software for Apple platforms in the early days of Swift language might remember ridiculous
times it took to compile the whole project. For large and complicated codebase times used to range from 10 up to 40 minutes.
Over the years our toolset has improved alongside with compilation times, but slow build times of source code can still be a nightmare.
17 Dec 2020
When we developed our Allegro iOS app adding new features and with more people contributing to the codebase, we noticed
that build times began to grow. In order to have precise metrics, we started to track clean build time as well as the
amount of code we had. Do these two metrics grow at the same pace?
28 May 2018
The following article has two parts. The first part describes improving
Allegro iOS app
launch time by adopting static linking and sums it up with a speedup
analysis. The second part describes how I managed to launch a custom
macOS app using not-yet-fully-released dyld3
dynamic linker and also
completes with an app launch speedup analysis.
15 Feb 2018
Application release process, or in fact software development process, as a release is the final stage of application
development, is not an easy thing. Books and IT websites discuss many approaches and each has its supporters and
opponents. On the one hand, you have product owners, project managers and customers who want a ready-to-use application
as soon as possible. On the other hand, we developers and testers, would like to release an application of the highest
quality, which may affect the delivery time. Balancing these needs is a hard nut to crack. Usually, both
sides need to make some compromises to establish a common way of working. For developers and testers, it involves
answering several questions concerning software development methods, skills, use of manual or automated testing, and
storage of test cases and test logs. In this article I describe best practices and tips for starting a new project.
I think that by following them, you will make the software development process as effective as possible and adjusted
to conditions of your project.
24 Oct 2016
We’re all familiar with
TDD, or at least write unit tests for our software,
but unit tests won’t check application state after complex UI interactions.
If you want to make sure that an application behaves correctly when users interact with it,
then you need to write UI tests.
09 Aug 2016
This article tells a story of chasing an iOS bug – a bug hidden so deep that it
required many different skills and debugging on different levels to identify it.
I think every native mobile app developer (not only an iOS developer) will find
this text interesting. Non-mobile developers may find it an intriguing read as
well.
14 Jan 2015
At the beginning of December we published our first post about Swift.
Today we want to continue the Swift thread and introduce a few interesting facts about functions in Swift language.
03 Dec 2014
Introduction of Swift programming language during WWDC 2014 was big news in developers’ world. The community
warmly welcomed the language created by Apple and many developers started learning and using it immediately.
This article explains what Swift is and its basic concepts. If you are an iOS (or OS X) developer it means that you probably already know all the
things described below, but if you haven’t started your iOS development adventure yet (but you want to), this article could be a good introduction for you.