Introduction to the Model View Presenter Pattern for Android

When creating software applications, separating our code into smaller, simpler units helps in maintaining the codebase, making it easier to understand and thus quicker to make future changes. When creating an Android application, there isn't a forced way on how to structure one's application as is the case with iOS development. The developer creates an Activity from which all the application logic can be housed, including responding to user interaction, making service calls, accessing the phone's various storage media, etc. This often results in very large Activity files, which are…

Keep reading

Presentational & Container Components in Angular

In organizing increasingly complex software systems, one normally breaks the complexity down into smaller, more manageable and maintainable units. Within the object-oriented programming paradigm, large classes and methods are refactored into smaller methods and classes to reveal intention to developers, making it easier to understand and make changes. Within a functional paradigm, larger functions can be broken down into smaller functions that 'do one thing'. In a similar fashion, Angular components can be broken down into smaller components that 'do one thing'. An approach developers sometimes take is for one…

Keep reading

Agility & Discipline

I recently finished reading The Land Is Ours by Tembeka Ngcukaitobi. The book fascinatingly narrates the lives of the first 6 black lawyers in South Africa, all practising in the early 1900s. There are common happenings in each of their lives: they all had the opportunity to study law in UK or USA, they all came back and had hurdles to jump over to practice in an increasingly discriminatory South Africa, and they all regularly fought cases resulting from the dispossession of land brought about by the Native Land Act…

Keep reading

Synchronization with Domain Models in Angular Applications

On the plateaus of Ethiopia is where coffee was first grown. From there, Arab traders took the plant and started cultivating it in the Middle East. Yemen is where it is now believed they started drinking it. From the Middle East, it spread to different parts of North Africa, and to the rest of the world. Today, coffee is grown in many places around the world, and through it, many families in Africa get their livelihood. Both small-scale family farms as well as large scale commercial establishments cultivate this crop…

Keep reading

Domain Modelling in Angular Applications

There is a Ugandan story told of a traveller who went to a faraway land. Upon reaching his destination, he found great difficulty because he didn't know the local language of the place he found himself in. Despite this, he attempted exploring and getting to know more of the place. He comes across a big house, and marveling at the house, asks a lady passing by, "Who owns this house?", to which she responds "Angazi". Later, while walking on the road he sees a beautiful car parked on the side…

Keep reading

Inversion of Control with React Native Components

On 26 December 1945, the CFA Franc, a currency still used by many former French colonies in Africa, was created. At the time, after World War 2, the French Franc (the one actually used in France and previously used in the colonies) had been devalued to maintain a fixed exchange rate against the dollar, and France, in its gracious and loving paternity, didn't want the exports from its colonies to receive a lower value, reducing the amount of money available in the colonial economy. This new currency had a fixed…

Keep reading

En-courage-ment

Software development is hard. And getting good at it is even harder. One regularly reads about the latest and greatest technology one has to know about, or the latest greatest technique that one has to adopt, or they are to be seen as 'doing it all wrong'. Continuously up-skilling oneself with a deeper knowledge of current tools, languages and techniques, while at the same time learning new ones is quite a daunting task. When moving this blog over to Ghost and reading through older entries, I came across a post…

Keep reading