Monthly Archives: December 2015

Xcode Vs AppCode – Which IDE Is Better For iOS Development?

Hussain Fakhruddin
Follow me

Hussain Fakhruddin

Hussain Fakhruddin is the founder/CEO of Teknowledge mobile apps company. He heads a large team of app developers, and has overseen the creation of nearly 600 applications. Apart from app development, his interests include reading, traveling and online blogging.
Hussain Fakhruddin
Follow me

Latest posts by Hussain Fakhruddin (see all)

A couple of weeks back, Apple released the fourth beta of Xcode 7.2. However, that was not the only big news in November related to integrated development environments (IDEs) for the iOS platform – with the latest iteration of the Java-based AppCode (version 3.3.1) also coming out a week earlier. While Xcode is, of course, a must-have tool for iOS app development, many developers feel that AppCode has the tools to emerge as a more-than-worthy competitor. We will, in what follows, perform a Xcode vs AppCode comparative study, and try to find out which one is more developer-friendly:


  1. Coding for apps – Writing the codes for iPhone apps is fairly easy with either IDE, although the superior code completion features of AppCode (much like other JetBrains tools) would put it at a slight edge. Variables and code blocks that are not in use get automatically grayed out/disabled in the IntelliJ IDEA platform IDE, while creating ternary expressions with ‘if-then’ blocks is a convenient option. What’s more, AppCode prompts developers whenever they write out code blocks that are never going to be hit. Xcode is also fairly neat, and is probably a touch more accurate than AppCode – but the extra features of the latter do make a difference.
  2. InterdependenceAppCode requires Xcode, but the opposite is not true. To put it differently, a mobile app developer needs to have Xcode installed on his/her system, before even thinking about using AppCode. On OX 10.11 El Capitan, AppCode 3 requires Xcode 7.1 or higher (Xcode 6.4 is the minimum requirement for OS X 10.10 systems). AppCode is an IDE that is meant to SUPPLANT Xcode, and not REPLACE it altogether. You can work with AppCode, but while developing iOS apps, you cannot ever fully ditch Xcode.
  3. Refactoring tasks – This round is a huge #win for Appcode. On Xcode, the ‘Rename…’ command has to be used for renaming the names of classes globally – and the process is uncertain, slow, and can cause other unnecessary changes as well. The built-in tool for method signature refactoring is nothing to write home about either (many developers have reported about its unreliability). AppCode does away with all such chances of refactoring mistakes and associated delays. All that the Obj-C programmers for iOS have to do is hit ‘Shift-F6’ → (type the new name) → Enter, and continue typing without any interruptions. For playing around with method signatures, AppCode has three different values (0, Null and No) that can be passed through parameters. From enums and variables, to classes, constants, files and practically every other section of app codes – AppCode provides much easier and faster renaming options than what Xcode does.
  4. Navigating through code files – Nothing to pick between the two here. The two IDEs offer entirely different file navigation systems for Apple developers – and both are equally developer-friendly. On AppCode, there are four different file finders, while Xcode has its own method for fuzzy finding files and classes. The number of file finders in AppCode might be more, but locating and accessing specific files in Xcode is not at all problematic either.
  5. Personalization options – Hardly any comparison here. Most iPhone app development experts who have ‘switched’ to AppCode feel that enhanced, all-round customization is the greatest single advantage that AppCode holds over Xcode. The default theme of the former (taken from Xcode) can be adjusted to reduce the look and feel of a Java environment. Developers can tweak around the font colours and styles, coding methods, and even the menu structure (both the appearance as well as the order in which items appear). Customization in Xcode is, at best, mediocre – and it’s not surprising that many developers are prepared to spend those extra few minutes to set up AppCode just like they want.
  6. Storyboarding – And we arrive at the biggest advantage that Xcode still holds over the IntelliJ IDEA AppCode. Most high-end iPhone apps involve extensive use of storyboards, and the support for them on AppCode is fairly sub-standard. There are stability issues, while tasks that are simple in Xcode (like modification of properties, or addition/deletion of autolayout constraints) are impossible in AppCode. It does not even support the Xcode 6 size classes. If you are working with storyboards, AppCode ain’t your friend, Xcode is.
  7. Class creation – We have already touched upon the greater ease of writing codes using AppCode. In particular, it is a whole lot more developer-friendly – when it comes to creating and declaring new classes. With Xcode, iOS developers have to go the whole hog of making the class, finding the folder in which it should be stored, finding and declaring a suitable method name and removing the auto-implementation. A small mistake here can lead the entire program to crash. In Appcode, new classes can be created even while testing is going on, and there is a single command to indicate where the new file is to be stored. Extra parameters can be added or removed with ease, and the method signature can also be changed. It’s easy to see why so many dedicated programmers prefer coding in AppCode rather than Xcode.
  8. Code testing – For debugging codes for iOS applications in Xcode, the miniscule icons at the breakpoint spaces have to be clicked, and the code has to be executed line-by-line. It is neither very convenient and certainly not a quick process. There are shortcuts available, but trying to work with multiple other unit tests in the same module can be very confusing. Code block testing is a whole lot easier and more accurate in AppCode, since the latter can correctly specify the line on which a block is being executed every single time (something where Xcode can falter frequently). The bigger advantage of AppCode over Xcode in the context of mobile app testing, of course, is the ability of the Java-based IDE to reveal property values (including that of hidden properties).
  9. UI features and settings – This round would go to Xcode. AppCode has a long way to go to match the efficient, easy-to-work UI that has always been a feature of Apple’s very own IDE. Including app entitlements (something that is not possible in AppCode) is a matter of minutes in Xcode. The build settings featureset of Xcode is better as well. On Appcode, when you edit the build settings, only a long line of objects get edited. With Xcode, developers can do so much more.
  10. Code moving and syntax highlighting – Moving code snippets from one location to another for overall improvement is possible in both Xcode and Appcode. However, those who make iOS apps have to finish writing the entire program, before making such changes. The same task becomes much simpler in AppCode – thanks to the contextual menus (for suggesting improvements) next to every code selection. The run-time suggestions (for instance, for moving a method to private) can come in really handy at times – and it certainly does away with the need for app coders to remember all the changes that have to be done. The syntax highlighting support feature (right in the Podfile) of AppCode also makes it a more user-friendly IDE for coding Cocoa projects. The graphic user interface (GUI) is well-designed, and there is a dedicated ‘Update’ button to upgrade the ‘Cocoapods’. The Xcode interface is nice and simple, but when several changes have to be made and the code itself is lengthy, it can be found wanting.
  11. Likely glitches while coding – Chances of unexpected technical problems cropping up during iPhone app development projects in Xcode are minimal. The same, unfortunately, can’t be said for AppCode. There have been reports from developers about problems in code scrolling, due to recurring flashes in the application screen of AppCode. The entire system (OS X) can also get locked up, while working with the JetBrains IDE – and the only way to get out of the mess is killing the process. Xcode-users hardly ever face such problems.
  12. The cost factor – There is a reason why indie app developers (most of whom have to work on a budget) stay with Xcode. It is a free IDE, unlike Appcode. JetBrains offers a free 30-day trial period, and after that – the cost for using AppCode is $89 for the first year and $71 for the following year ($199 and $159 for mobile app companies). The best idea for new iOS developers would be to learn Xcode thoroughly, check out AppCode in for free in the trial period, and then take a call on whether it would be worth going for the paid subscription.


Appcode 3.3 has been launched with full support for Swift 2 and Xcode 7 (on OS X 10.11, the support for Xcode 6.x has been discontinued). Code inspection can be done in a special LIVE mode – which adds to the advantage of AppCode. There are several other native scripts in AppCode that make it an absolute breeze to work with for iOS app developers.


So, which of the IDEs is better? As we have pointed out, Xcode has its fair share of shortcomings, and JetBrains’ alternative does a good job of doing the same tasks in a much easier manner. However, it too has its rough edges (the hardly-there support for storyboarding, for instance), all coding related to core data has to be done in Xcode – and of course, there are expenses involved in using AppCode on a continuous basis. Both IDEs have certain definite advantages – it’s only that the ones of AppCode (refactoring, code writing, etc.) matter more to actual developers.


Xcode or AppCode – which one do you prefer using?

App Store Optimization: A Guide For Developers

Hussain Fakhruddin
Follow me

Hussain Fakhruddin

Hussain Fakhruddin is the founder/CEO of Teknowledge mobile apps company. He heads a large team of app developers, and has overseen the creation of nearly 600 applications. Apart from app development, his interests include reading, traveling and online blogging.
Hussain Fakhruddin
Follow me

Latest posts by Hussain Fakhruddin (see all)

Are you familiar with the concept of ‘zombie apps’? Nopes, they are not some sort of mobile games – these apps are the ones that have little or no visibility at all at the app stores. As per latest figures, nearly 51000 apps are downloaded by people (from Google Play and Apple iTunes combined) per minute – and these users have no chance whatsoever of even finding the 1.1 million+ zombie apps, which remain in a corner – with hardly any downloads. In today’s discussion, we will highlight certain key app store optimization (ASO) strategies, to ensure that your well-worked mobile application does not turn out to be an invisible zombie at the stores:


  1. Be careful while choosing your app’s name – For iOS app developers, the name of an application can extend to 255 characters. At the Google Play Store though, the maximum length of an app’s title is 30 characters. However, for both cases – only the first 25 characters are visible to smartphone users (after all, they will be the main downloaders), and it is important to focus on this part of the title. Do a thorough research to find out which keyword(s) your competitors are targeting – and try including them in your app title too. Avoid using any special characters in the name of an app. Make sure that the name you select is not too similar to any existing application (that would only mean more competition). In this context, app store optimization is practically like search engine optimization (SEO).
  2. Describe your app well – People download mobile apps after skimming through their store descriptions. That, in turn, brings the importance of preparing high-quality, engaging app store descriptions to the fore. In the description, emphasize on how your app would benefit the user and plug a particular requirement/need, instead of simply rattling off the app’s features. There is a conception that words like ‘free’ and ‘new’ should not be used in app descriptions – but when used in the right context (for instance, ‘free iOS multiplayer game’), they can serve as persuasive catchphrases. Android developers should make optimal use of the 4000-character space for writing a proper, detailed description (for iOS apps, the descriptions have to be significantly shorter). Remember, people browsing the app stores on their smart devices can see only the first 5 lines of app descriptions (before they tap ‘More’) – and hence, you need to capture the user’s’ attention from the very start.

Note: You do not need to use the name of the app as a keyword. It is already treated as one.

  1. Score with screenshots – Experts from the field of mobile app development agree that screenshots and icons (we will come to that one in a bit) are the two most important tools to visually market applications. The App Store allows developers to upload 5 screenshots, while in the Play Store, as many as 8 screenshots can be put up. Irrespective of the platform, select the two most important screens of your apps as the ‘primary screenshots’ (these are the one that would show up in the search results). In the other screens, try to emphasize on the reasons why a person should invest time, money (if it’s a paid app), and space on his/her smartphone, by downloading your app. Highlight the in-app navigation as well. Contrary to what many new app developers believe, you need not tell a chronological story with your screenshots – they purpose is to VISUALLY EXPLAIN your app.
  2. Select the correct category for your app – Make a mistake here, and your target audience would find it extremely difficult, if not impossible, to find your app. Go through the list of app categories at the stores, and select the one which fits your application the best. If there is an option of selecting a sub-category, pick the one that would be: A) accurate and b) will not have too much of competition. Stay away from the temptation of wilfully putting your app in a wrong category (because it has low competition) – that can lead to penalizations, and your app can be flagged by users.
  3. Create a promo video – This tip is for Android app developers only. Grab the opportunity to enhance user-engagement, by including a short promo video for your app at the Google Play Store. The length of the video should be around 120 to 150 seconds, and you need to include the most important features of the app in the first part of the video. Adding the video is easy (by linking the YouTube URL), and it appears in the first position on the app listing page. People browsing Play Store from their mobiles can see the promo video in the top ‘feature graphics’ section.
  4.  Optimize the app icon – The icon is, without an exception, the first point of interaction between your app and general users. The icon that you come up with should provide potential users a clear idea of the nature of your application – even before they move on to the app title and description. Ideally, use icons in the .PNG format (1024×1024), and do not put any words, or the app title on it. Many leading app developers prefer adding borders to the app icon, to ensure that the latter looks good against all backgrounds. Use a single prominent theme in the icon, be creative, and be consistent in your usage of the icon on different platforms. For instance, if your app is available for iOS, Android and Windows – users should see the same icon at the different stores. Use the same icon for the app website and social media channels too. It’s all about building up a brand for your app. A well-designed app icon can boost downloads by up to 30% – that translates to thousands of downloads!
  5. The Keywords field – Unlike Google Play, where keywords are tracked from the app title and description only, the Apple App Store has a separate field for entering multiple keywords/tags (max. 100 characters). Do not waste space by adding spaces between the keywords (the section is not visible to general users) or including ‘stop words’ like ‘at’ or ‘the’. While writing numbers, use digits instead of words (i.e., ‘5’ instead of ‘five’). Do not repeat single keywords too many times, which tantamounts to spamming. App store researchers also note that shorter keywords help more in app discovery than elaborate, long-tailed ones.

Note: Whenever possible, use the plural version of a word (‘instead of ‘download’, write ‘downloads’). Plural words have slightly less competition, and their effect in app store search is the same.

  1. Expand the device compatibility of your app – This one’s practically a no-brainer. For two identically optimized mobile apps, the one that is compatible with more devices will obviously generate greater downloads. Most high-performing iOS apps have custom versions for the latest iPhones, iPads, iPod Touch and even a Apple Watch extension. On the other hand, Android apps should be tested and made compatible with as many devices as possible (the huge number of vendors makes this a slightly arduous task). If your app targets a global audience, offer multilingual support on it. That will pull up the download figures too.
  2. Pay attention to reviews and ratings – Surveys conducted by several online leading software and mobile app companies have revealed that almost 50% of all downloads from the App Store take place on the basis of word-of-mouth publicity (the corresponding figure for Android apps is 42%). To put it plainly, many people download mobile apps after having a chat with their friends, family and acquaintances. Keep track of the initial ratings and reviews that the early users are leaving for your app. Within the app, prompt users to share their feedback. People are sceptical about downloading mobile software that have poor ratings – and if your app’s reviews are not too flattering, try to identify the problems that users are facing, and fix things accordingly.

Note: Beta testing an app is vital. Give users a chance to check out your MVP, before releasing full upgrades.

10. Web search data differs from App Store search dataApps that have the correct keywords in their titles and keywords have been found to perform nearly 10.5% better than those with wrongly-chosen or no keywords. Developers and mobile app marketers have to realize that the search data available in general on the World Wide Web is significantly different from the way a viewer searches for apps at the App Stores. Yes, free tools like Google Keyword Planner would give you an early guide on which keyword(s) would suit your application – but you need to factor in the data available on app store-specific tools like AppAnnie and SensorTower. The keywords you select have to be well-researched and not random.

11. Downloads in the first 72 hours – The initial volume of downloads go a long way in determining whether your app will be featured at the app stores, or will lag behind as a ‘zombie’. At the Apple App Store, the download-count in the first 72 hours (with maximum weightage on the first 24 hours) after the launch is considered. At the Play Store, you have a little more time – since download data from the first 30 days are taken into account for determining app rankings. Go for paid promotions on Google, Facebook, and other popular channels – to bolster the download figures of your app. Publish blog posts, submit press releases, and share the links of these resources in the ‘What’s New?’ section. Submit your app for reviews on high-quality sites, and exchange reviews on FB and G+. Create a strong buzz about your app, which would translate into high download figures and better rankings.

12. Do not oversell your app – It’s a temptation to praise your app to the skies while writing its description for store listing – but stay away from supplying false information about your product. Apple is smart enough to catch on to exaggerations (both in the description and the metadata) – and even if your app does get published, it will not satisfy user-expectations. Explain in an informative, engaging, and most importantly, truthful way why a smartphone-user should download your application. If your app is good, the reviews would prove it – you don’t need to lie for that!

For apps that are geo-targeted, developers need to translate the keywords and create localized descriptions. Keep in mind that app testing is an ongoing process, and you need to think long-term for the sustained success of your app. Close to 65% of all iOS app downloads and 58% of all Android app downloads take place through general browsing in the stores – which only highlights the importance of efficient app store optimization. In the US app store, 100000+ downloads are required for an app to feature in the top-10 list (the requirements are lower, but challenging enough, in the app stores of UK, Germany, France and Italy as well). Unless your ASO strategies are good, it will be tough to, firstly, make your app visible, and secondly, convert general viewers to actual users.