Posts

Showing posts from July, 2018

AGILE METHODOLOGIES FOR MOBILE APPLICATION DEVELOPMENT

Image
The agile methodology for mobile application development seeks to provide an alternative to traditional methods of project management such as the waterfall methodology.  This approach enables requirements and solutions to evolve through the combined effort of the development team and the customer. It promotes adaptive planning, evolutionary development, early delivery and continuous improvements.  This iterative and flexible approach can be used in complex projects where the customer requirements change frequently.  A big project can be broken down into smaller parts and agile methodology can be applied to each of these small parts. As this method requires high customer engagement to take in the customer’s requirements at each step and his feedback after every step into account hence it can be used in projects where the customer is committing to engage in interactive communication from time to time.  Now when it comes to understanding the role of agi...

Deep Copy and Shallow Copy - Swift

Image
Reference and Value Types in Swift In this post we are going to examine the differences between reference and value types. We’ll introduce both concepts, take a look at their strengths and weaknesses and examine how we can take advantage of them in Swift. Reference Types Reference type : a type that once initialized, when assigned to a variable or constant, or when passed to a function, returns a reference to the same existing instance. A typical example of a reference type is an object. Once instantiated, when we either assign it or pass it as a value, we are actually assigning or passing around the reference to the original instance (i.e. its location in memory). Reference types assignment is said to have  shallow copy semantics . In Swift, objects are created using the  class  keyword. Value Types Value type : a type that creates a new instance (copy) when assigned to a variable or constant, or when passed to a function. A typical example of a va...

How not to get desperate with MVVM implementation

Image
How not to get desperate with MVVM implementation: How not to get desperate with MVVM implementation Let’s imagine you have a small project, where you used to deliver new features in just 2 days. Then your project grows bigger. The delivery date becomes uncontrollable, from 2 days to 1 week, then 2 weeks. It drives you crazy! You keep complaining: a good product shouldn’t be so complicated! That’s exactly what I have faced and it was really a bad time for me. Now, after working for a few years in this area, cooperating with many excellent engineers, I realized that the product design doesn’t really make the code so complex. It’s me who makes it so complicated. We could have the experience writing spaghetti code which significantly hurts the performance of our projects.The question is how can we fix it? A good architecture pattern might help. In this article, we are going to talk about one of the good architecture: Model-View-ViewModel (MVVM). MVVM is a trending...