{"id":568,"date":"2011-03-14T12:06:02","date_gmt":"2011-03-14T11:06:02","guid":{"rendered":"http:\/\/cerezo.name\/blog\/?p=568"},"modified":"2024-10-14T14:23:19","modified_gmt":"2024-10-14T12:23:19","slug":"5-tips-for-better-iphone-development","status":"publish","type":"post","link":"http:\/\/cerezo.name\/blog\/2011\/03\/14\/5-tips-for-better-iphone-development\/","title":{"rendered":"5 Tips for Better iPhone Development"},"content":{"rendered":"<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"text-align: justify;\">Manage memory properly, but resist the urge to&nbsp;use&nbsp;<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;width:550px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br><\/div><\/td><td><div class=\"text codecolorer\">retainCount<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p><span class=\"quo\">,<\/span> it\u2019s a bad idea. Also, it\u2019s better not&nbsp;use<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;width:550px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br><\/div><\/td><td><div class=\"text codecolorer\">autorelease.<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<\/li>\n<li style=\"text-align: justify;\">Draw on the available toolset to improve the quality of the code: Instruments, to find the root cause of bugs; Shark, to improve performance; Clang Static Analyzer, to get the most detailed and comprehensive compiler warnings.<\/li>\n<li style=\"text-align: justify;\">Try to anticipate every iOS update, because there will always be changes to be&nbsp;made.<\/li>\n<li style=\"text-align: justify;\">Develop re-entrant code, because every method could be interrupted and the app could get any message in any state: it\u2019s very important to remember this before coding every method. Read the open-sourced iPhone app code available on the net: the idioms and the patterns are very different from the Java\/C++ paradigm.<\/li>\n<li style=\"text-align: justify;\">Beware of using SQLite with flash memory I\/O: it will block the&nbsp;<span class=\"caps\">GUI<\/span>.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Manage memory properly, but resist the urge to&nbsp;use&nbsp;1retainCount , it\u2019s a bad idea. Also, it\u2019s better not&nbsp;use 1autorelease. Draw on the available toolset to improve the quality of the code: Instruments, to find the root cause of bugs; Shark, to improve performance; Clang Static Analyzer, to get the most detailed and comprehensive compiler warnings. Try&nbsp;[\u2026]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"ngg_post_thumbnail":0},"categories":[17,3],"tags":[],"_links":{"self":[{"href":"http:\/\/cerezo.name\/blog\/wp-json\/wp\/v2\/posts\/568"}],"collection":[{"href":"http:\/\/cerezo.name\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/cerezo.name\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/cerezo.name\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/cerezo.name\/blog\/wp-json\/wp\/v2\/comments?post=568"}],"version-history":[{"count":6,"href":"http:\/\/cerezo.name\/blog\/wp-json\/wp\/v2\/posts\/568\/revisions"}],"predecessor-version":[{"id":1659,"href":"http:\/\/cerezo.name\/blog\/wp-json\/wp\/v2\/posts\/568\/revisions\/1659"}],"wp:attachment":[{"href":"http:\/\/cerezo.name\/blog\/wp-json\/wp\/v2\/media?parent=568"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/cerezo.name\/blog\/wp-json\/wp\/v2\/categories?post=568"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/cerezo.name\/blog\/wp-json\/wp\/v2\/tags?post=568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}