Tag Archives: Software Design

Designing mobile APIs – dynamic content

On mobile devices native UIs offer superior responsiveness and performance but web views offer flexible layouts and data driven content. How can we combine the strengths of both to produce a highly responsive UI which can display dynamic data from … Continue reading

Posted in Mobile | Tagged , | Leave a comment

Designing mobile APIs – error handling

While designing an api I need to provide reliable error responses to both protocol and application level errors. Here I’ll consider any error response generated outside our application stack to be a protocol error while those errors returned from my … Continue reading

Posted in Mobile | Tagged , | Leave a comment

Designing mobile APIs – basic behaviors

As Rails developers we design APIs on a regular basis: routes for browsers to interact with a web app, JSON apis and routes for client side javascript to build dynamic pages, payloads queued for background processing on a server, and … Continue reading

Posted in Mobile | Tagged , , , | Leave a comment

Abusing UIViewControllers

UIViewControllers are a fundamental building block of most iOS applications. Unfortunately many developers seem to use them in unintended and unsupported ways which leaves their apps vulnerable to bugs, rejections, unpredictable behavior under new iOS releases, and with controllers which … Continue reading

Posted in Mobile | Tagged , , | 59 Comments

iPhone Distributed Computing Fallacy #8: the network is homogeneous

Reviewing the 8 classic “fallacies of distributed computing” and how we can avoid them when writing iOS applications. The fallacies of distributed computing The network is reliable. Latency is zero. Bandwidth is infinite. The network is secure. Topology doesn’t change. … Continue reading

Posted in Mobile | Tagged , , | Leave a comment

iPhone Distributed Computing Fallacy #7: transport cost is zero

Reviewing the 8 classic “fallacies of distributed computing” and how we can avoid them when writing iOS applications. The fallacies of distributed computing The network is reliable. Latency is zero. Bandwidth is infinite. The network is secure. Topology doesn’t change. … Continue reading

Posted in Mobile | Tagged , , , | Leave a comment

iPhone Distributed Computing Fallacy #6: there is one administrator

Reviewing the 8 classic “fallacies of distributed computing” and how we can avoid them when writing iOS applications. The fallacies of distributed computing The network is reliable. Latency is zero. Bandwidth is infinite. The network is secure. Topology doesn’t change. … Continue reading

Posted in Mobile | Tagged , , | Leave a comment

iPhone Distributed Computing Fallacy #5: topology doesn’t change

Reviewing the 8 classic “fallacies of distributed computing” and how we can avoid them when writing iOS applications. The fallacies of distributed computing The network is reliable. Latency is zero. Bandwidth is infinite. The network is secure. Topology doesn’t change. … Continue reading

Posted in Mobile | Tagged , , , | Leave a comment

iPhone Distributed Computing Fallacy #4: the network is secure

Reviewing the 8 classic “fallacies of distributed computing” and how we can avoid them when writing iOS applications. The fallacies of distributed computing The network is reliable. Latency is zero. Bandwidth is infinite. The network is secure. Topology doesn’t change. … Continue reading

Posted in Mobile | Tagged , , , | Leave a comment

iPhone Distributed Computing Fallacy #3: bandwidth is infinite

Reviewing the 8 classic “fallacies of distributed computing” and how we can avoid them when writing iOS applications. The fallacies of distributed computing The network is reliable. Latency is zero. Bandwidth is infinite. The network is secure. Topology doesn’t change. … Continue reading

Posted in Mobile | Tagged , , , | 1 Comment