background preloader

To Make iPhone Apps – MVC, One Pattern To Rule Them All

Facebook Twitter

Google sent me a “what to know in on-site interviews” email. Here it is. How To Make iPhone Apps – MVC, One Pattern To Rule Them All. Welcome to part 3 of my series on How To Make iPhone Apps with no programming experience – where we’ll turn even the non-programmer into an iOS developer! Here’s the article index for the entire series in case you missed it. Today, we introduce the model view controller architecture pattern that all iOS apps are based off of! By the end of this tutorial, you’ll be armed with the practical knowledge of Objective-C from the previous 2 parts of this series and you’ll understand the concepts of architecting iPhone apps with MVC. 1. MVC – Introduction As implied with the name, the MVC software design pattern refers to three separate roles: the model, the view and the controller.

The idea is that the objects in your application will take on these roles and work together to create and manage the user interface. The Model The model represents the data in your application. The View The view is the user interface or what the user sees and interacts with. The Controller What’s a UIViewController? 2. Ever find yourself doing boring, repetitive tasks as a web developer? Today, I'm going to show you how you can cut those meta-tasks out of your development cycle with a little bit of automation. In this tutorial, you'll learn how to easily perform those repetitive tasks with Apache Ant. Republished Tutorial Every few weeks, we revisit some of our reader's favorite posts from throughout the history of the site. This tutorial was first published in March of 2011. Intro: What is Ant? Ant makes it incredibly easy to define a set of tasks that you can then execute with a few commands. Ant is a piece of software that was originally built for automating software builds.

Ready? Step 0: Creating our Dummy Project Before we get to Ant, we need to have a project to work with here. As you can see, this explains the rest of the project. So, what are we going to do with this project? Step 1: Installing Ant Installing Ant can be a rather daunting task. Now, let’s download the latest version of Ant. Organization can make or break the maintainability of an application.

With smaller applications, organization is more obviously apparent; however, as the application grows and as the number of application developers and front-end engineers producing code increases, the more confusing organization can become. In this post, we will go over some basic concepts for keeping applications organized so that finding relevant code is an efficient and systematic process. Learn from Frameworks JavaScript should be scoped in an efficient way.

Let’s take a moment and consider the way Rails and WordPress teams organize their projects. Chances are, you’ve probably worked with one or the other of these. When generating a Rails application, Rails handles much of the primary organizational needs for you. Rails also generates a few other items at the same level as the “app” folder, such as configuration, logging, databases, temporary/caching, tests, and some other pieces. …the application is built for users… Monkeying with Bayes’ theorem. In Peter Norvig’s talk The Unreasonable Effectiveness of Data, starting at 37:42, he describes a translation algorithm based on Bayes’ theorem. Pick the English word that has the highest posterior probability as the translation. No surprise here. Then at 38:16 he says something curious. So this is all nice and theoretical and pure, but as well as being mathematically inclined, we are also realists. So we experimented some, and we found out that when you raise that first factor [in Bayes' theorem] to the 1.5 power, you get a better result.

In other words, if we change Bayes’ theorem (!) Now should we dig up Bayes and notify him that he was wrong? I imagine most statisticians would respond that this cannot possibly be right. While such a reaction is understandable, it’s also a little hypocritical. I agree, but that same reasoning applied at a higher level of abstraction could be used to accept Norvig’s translation algorithm. IntelliJ IDEA Minimal Survival Guide. Last updated: 07 January, 2014 Why this Guide Much like its counterpart, the JVM Guide the purpose of this guide is to make it easier for newbies to get up to speed faster with IntelliJ IDEA. Work in progress While it is a blog post, it is also a page that I will update as and when I come across new things.

At the top is the latest updated date. Target Audience This guide is for anyone starting out on IntelliJ IDEA. What this guide is not This guide is not meant to replace the documentation for IntelliJ IDEA or the many tutorials available. The Basics IntelliJ IDEA is a full-fledged IDE with all the things you’d come to expect from one including: Intellisense and Code Completion Coding Helpers Code Analysis Navigation Refactoring Debugging Source Control Integration Unit Testing and Code Coverage Code Formatting Build Management Continuous Integration support Other Tooling and Features Cross Platform IntelliJ IDEA is cross-platform.

Multiple Languages and Technologies Extensible Project Formats.