Monthly Archives: April 2015

iOS 8.3 Releases: 14 New Features & Improvements

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)

After four developer betas, iOS 8.3 finally arrived on Wednesday. We have here highlighted the major additions and improvements in the latest iteration of the iOS 8 mobile platform.

 

A couple of days back, Apple Inc. released the final version of the iOS 8.3 update. The first beta of the new version had been rolled out in February, and it took the Cupertino tech giants close to two months to smoothen its rough edges, and make it available to iOS-device users. Just as the expectations had been, iOS 8.3 comes with quite a few interesting new features, fixes and general improvements. We will here list out some of the best things about iOS 8.3:

 

  1. CarPlay wireless connectivity – You can now stop using that old Lightning Cable. Once you upgrade your iPhone to the latest version of iOS, you will able to connect it to Apple CarPlay in wireless mode. The connection is quick and, as per early reports, interruption-free. Using your handset on the go just got a bit easier!
  2. Improved App Rotation and Visual Orientation – iPhone app developers as well as general users had confirmed that the screen of iPhone 6/6 Plus (running on on earlier versions of iOS 8) often appeared upside down, after the device was taken out of a pocket. What’s more – in the multitasking mode, the pre-installed applications rotated incorrectly. All of these problems have been fixed in iOS 8.3. Toggling between the portrait and landscape view modes is no longer a problem either.
  3. Siri gets a smarter edge – It’s not quite the perfect mobile digital assistant yet, but Siri is definitely moving in the right direction. In iOS 8.3, Siri is packed with greater language compatibility, with Thai, Russian, Portuguese and Dutch being some of the new supported languages. In addition, the virtual iPhone assistant is now able to tell the difference between messages sent from unknown senders, and those from contacts. New accents have also been built-in.
  4. Host of new emojis – Most software critics and mobile app development experts feel that the emoji keyboard is the biggest surprise that iOS 8.3 packs in. New/Upcoming Apple gadgets, like the new Mac and Apple Watch, have separate emojis, while there are plenty of emojis depicting people and families. The total emoji count built in the iOS 8.3 platform is well over 300. The skin tone of the individual emojis can be changed too. Clearly, Apple is on a mission to give a more personalized experience to iPhone users.
  5. Two factor account authentication – It was a long time coming, and iOS 8.3 finally brings Google’s much-vaunted two-factor authentication system to the table. People would no longer require separate passwords (unique to every app), to add multiple Google accounts on their handset. The presence of two-factor authentication adds an extra layer of mobile security too.
  6. Support for high-end braille displays and Photos app – iCloud Photo Library has been upgraded in iOS 8.3 (out of beta). After installing the OS X 10.10.3 update on your Mac system, you can now sync all your phone images with the revamped Photos app. The new mobile platform delivers top-class support for Braille displays – thanks to its complete compatibility with VarioUltra 40 and Baum VarioUltra 20.
  7. Passbook is more systematic and user-friendly – A relatively minor fix, but one that would add to the convenience factor of iDevice users. The Passbook app in iOS 8.3 can now seamlessly separate Passes from all the Apple Pay content. With mobile payments and wallet management getting popular by the day, Apple Pay and Passbook needed a facelift. Apple has done just that.
  8. Better app performance assurance – For users and professional iOS app developers alike, this is a big relief. The earlier versions of iOS (iOS 8.1 in particular) had more than their fair share of problems – one of which was making the apps installed in devices perform slowly. Once you have upgraded your handset to iOS 8.3, you will find that installing and launching applications have become a lot easier. The improvement in the responsiveness of iPhone apps is also significant.
  9. More reliable Bluetooth and Wifi – iOS 8.3 finally comes out of the mesh of connectivity issues that its predecessors suffered from. Mobile app testers and early adopters have confirmed that the wireless connectivity on the upgraded platform is stable, with minimal chances of random connection drops. The frustrations of having to repeatedly type in your login information are a thing of the past now – and neither do you have to worry about audio problems in the Bluetooth speakers. The hands-free voice calling feature has also been made more stable.
  10. Improved keyboard – There had been complaints reported from iPhone 6 Plus users (in particular) about the dimensions of the ‘space’ and the ‘period’ (stop) tabs in the device keyboard. While typing quickly, many people have tried to enter a space, and ended up including a period in their typed text. The keyboard of the latest iOS version has been redesigned, to address this problem. The period tab has been made smaller, while the spacebar is significantly larger. While typing messages, or searching for Safari, chances of erroneous addition of periods have been minimized. The addition of the new Chinese keyboard is also worth a mention.
  11. Better ‘Ask To Buy’ – Like many other features of iOS 8.1 and iOS 8.2, the ‘Family Sharing’ feature left much to be desired too. Apple has addressed most of these issues, by tweaking around ‘Ask To Buy’, to make it more secure and reliable. Those using shared resources (i.e., family members) are now able to opt for free app downloads and/or launch any application without any difficulty (read: need to give passwords). The previous versions of iOS 8 had bugs related to this, and they have been ironed out.
  12. The speed boost – This is yet to be confirmed, but Apple has promised that the iOS 8.3 platform would be considerably faster and more efficient than iOS 8.2. Right from wireless connectivity, Control Center and iMessages, to 3rd-party keyboards and the tabs in the Safari browser on iPhones – everything is likely to work more quickly, once the upgrade is done. Many iPhone/iPad app developers have already tested their applications on the new platform, and confirmed that the latter were indeed working faster.
  13. Greater support for enterprise users – Apple has included a large number of important enterprise bug fixes in the iOS 8.3 mobile platform. Apart from smoother launch and installation of enterprise applications, the compatibility features of both web proxy as well as VPN have been bolstered. There is no longer any risk of loss of data from Exchange accounts  (for instance, due to short connection outages). Exchange meetings that include relatively long notes do not get automatically truncated in iOS 8.3 either.
  14. More text formatting options in iPhone 6 Plus – Upgraded iPhone 6 Plus phablets allow users to pick from new formatting options. In the landscape mode, text can now be italicized and/or underlined (earlier on, only the ‘Bold’ option was present). You will no longer see “FYI” getting auto-corrected, while QuickReply has also become more reliable in terms of providing contextual text predictions. In a nutshell, typing on a device running on iOS 8.3 has become faster, accurate and more personalized.

Siri’s new ability of making calls via the speakerphone is yet another handy feature of iOS 8.3. Apple has acquired the support of two new mobile carriers as well (yay!) – EE (in the United Kingdom) and Sprint (in United States). The backend support of the latest iOS version extends to iPhone 4S and iPad 2. The update can be downloaded for iPhone, iPad or iPod Touch from iTunes. Users can also go for the update ‘over-the-air’ (cloud update). Mobile software experts and app developers feel that iOS 8.3 is indeed be the best iteration of the iOS 8 platform – and it remains to be seen whether it gets the thumbs-up from users.

 

Will you be upgrading your iDevice to iOS 8.3?

Working With Cocos2D-x: A Beginner’s Guide

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)

As far as open-source, cross-platform game engines are concerned, Cocos2D-x would rank right near the top. We have here explained some terms and features of this tool, for new and existing users.

 

Cocos2d-x would easily figure among the most popular 2D game development engines. Newbies can, however, find it rather complicated – and a significant amount of time needs to be invested by a developer on learning its nitty-gritty, before (s)he can start creating games with this open-source tool. With greater familiarity with the framework, you are likely to find the engine to be really user-friendly too. In the following discussion, we will take you through some important features and user-tips related to Cocos2d-x:

 

  1. Cross-platform support – The Cocos2d-x framework can be used to build games and apps on both the iOS and Android platform. This automatically makes it a more widely usable tool than the Objective-C based Cocos2d, which supports only the iOS platform. Depending on the platform you are working, you will have to download and install the latest version of Xcode (iOS) or Eclipse (Android). It is possible to use Cocos2d-x for desktop as well as mobile game development.
  2. Scenes and Nodes and Sprites – In particular, many new game developers find the concept of ‘Nodes’ and ‘Sprites’ confusing. Both of them refer to the objects visible on the game screen – but ‘Sprites’ are the ones which actually move about. All the other objects are simple ‘Nodes’. All nodes are stored in a ‘Scene Graph’, which is alternatively called the ‘Tree’. The in-order-work algorithm is deployed by Cocos2d-x to manage the sprites, nodes and animations in the ‘Scene Graph’. The ‘Scene’, of course, refers to the screen where the game menus, levels, and all other visual elements are displayed.
  3. Minimum system requirements (Runtime) – For iOS game development, Cocos2D-x requires the support of iOS 5.0 (or higher). Similarly, if you are making an Android game, you will be able to use this game engine only if your device is powered by Version 2.3 (or later) of the OS. For Windows and OS X games, the minimum runtime requirements of Cocos2D-x are Windows Phone 8 and OS X 10.6 respectively. For optimal game engine performance, it is advisable to upgrade systems to the latest versions of the respective OS-es (OS X Yosemite, iOS 8, Android 5.0 Lollipop, etc.).
  4. Simultaneously working on iOS and Android – The concept of ‘Classes’ in Cocos2D-x makes this easy for mobile game and application developers. The C++ files created and stored in the Classes directory under Xcode and Eclipse/Native Android Toolkit are the same – and all that users have to do is instruct the iOS and Android projects to refer/point to the same folder destination. Create a group called ‘Classes’ in the ‘Project Navigator’, and add the files that you need to keep together. Uncheck the box beside ‘Copy items into destination group’s folder’, and then just click on ‘Add’.
  5. Editor support – Cocos2d-x boasts of a vast range of supported editors. According to many professional mobile game/app development experts, this is one of the prime reasons behind the engine’s sustained popularity since 2010. Apart from CocoStudio (the official editor of Cocos2D-x), the tool is also compatible with ‘Dragon Bones’ and ‘Spine’ (both are animation editors), Sprite Helper, Glyph Designer and Tiled Map Editor. Developers can also work with texture atlases by using the Zwoptex or Texture Packer tools.
  6. Designing on Cocos2d-x – Game developers can take their pick from four alternative design options available in the engine – ‘Exact Fit, ‘Fixed Height’, ‘No Border’ and ‘Show All’. If you wish your game screens/scenes to be properly viewable on mobile devices with various-sized screens, the ‘Fixed Height’ option is the most suitable, since it does not involve unnecessary cropping or compressing of the images. Go through the CCEGLViewProtocol.h file carefully, to find out about the design policies of Cocos2d-x, and how they are affected by the screen aspect ratios of devices.
  7. Minimum System Requirements (Build) – For making a 2D iOS game with Cocos2D-x, you will need to install Xcode 5.1 (or any later version; 6.2 is the latest stable release). For developing on the Android platform, you have to set up NDK r9d first. On other platforms, the minimum build requirements for Cocos2D-x are Visual Studio 2012 (for Windows) and CMake 2.6 (or later). The engine can even be used to make games and apps on the Ubuntu platform, provided that you are using Version 12.10 (or higher) of the OS.
  8. Main classes in the engine – We have already highlighted how Classes can be used to store iOS and Android projects together on Cocos2D-x. However, to start working with the engine – game developers need to get acquainted with four other, basic classes first. These are CCDirector (for calling user-interaction, passing and rendering calls, and depiction of the various game scenes), CCScene (the CCDirector class shows this base node), CCFileUtils (for using ‘search paths’, and general handling and management of files in the codes), and CCEGLView (this renders the game visuals on the system screens). Among these, the first has to be used constantly, while CCEGLView is generally required only once – at the time of setting up Cocos2D-x for the first time.
  9. What are Actions? – If you are making a mobile gaming app, you need to be an expert at creating custom ‘Actions’ – i.e., movements of the characters in your game. Right from playing around with any Node object in the time-space continuum, to using Callbacks after the movement of Sprite objects – everything has to be managed with the help of developer-defined ‘Actions’. Some of the most frequently used Actions in Cocos2D-x are ‘Rotate’, ‘MoveBy’, and ‘Scale’.
  10. Supported widgets – Games created with Cocos2D-x generally have smooth and engaging UIs, and this has got a lot to do with the multiple types of widgets that the editor supports. PageView, ListView and ScrollView are the three containers built-in for Cocos2D-x, while there are separate widgets for adding TextField, Button, and CheckBox in the game scenes. You can also include sliders/loading bars. Cocos2D-x games can have Horizontal View, Vertical View, or both.
  11. Difference between Sequence and Spawn – Another probable source of confusion for app and game developers starting out with Cocos2D-x. In the engine, a ‘Sequence’ refers to a set of ‘Actions’ that are called/executed sequentially (creating reverse Sequences is also possible). On the other hand, a ‘Spawn’ refers to simultaneous execution of ALL the specified Actions. A Sequence is created with the auto mySprite = Node: :create() command line, while a Spawn is defined by auto myNode = Node: create().
  12. Layers, Anchor Points and App Delegates – Okay, let’s take a look at some other common terminology used by the users of the Cocos2D-x tool. The focal point around which every Sprite object moves is known as the ‘Anchor Point’ (default value → 0.5, 0.5). ‘Layers’ refer to a certain type of non-visible nodes, which are arranged in accordance with the z-order system of the engine (most simple 2D games require only single layers). ‘App Delegates’ are something about which only iOS app developers need to know. They are, in essence, classes that are used to call pre-defined methods. The delegates are present as virtual classes in C++, and are created as per protocols in Objective-C.
  13. Using Sprite Sheets for animation – Cocos2D-x lets graphic designers and game animators to use Sprite Sheets. In simple terms, this means that users can create a large texture (i.e., an image), in which all the animation frames are contained. The precise position of every frame is mentioned in the Data files that accompany the Sprite Sheets. When the sheets are exported, they remain in sync with the files in the ‘Resources’ folder.
  14. Enhanced Physics support – Presence of the Chipmunk 2D physics system (integrated in the engine) is yet another high point of the Cocos2D-x game development engine. For customizing character bodies, contact points, joints and the like, there are object-oriented wrappers. The tool supports parallax scrolling, and comes with the useful ‘Render To Texture’ feature as well.

The only blip in the other otherwise excellent programming language compatibility of Cocos2D-x is the lack of support for JavaScript on the WP8 mobile platform (C++ and Lua are supported). Innovative 3D skeletal animation support has been included in the latest version of Cocos2D-x – v. 3.2 for iOS 8. Several immensely popular games have been created with the Cocos2D-x tool, and once you are familiar with its operations, you can start making your very own customized game too.

 

 

AppBoard Tuesday – Trends & Figures App Developers Need To Be Aware Of

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)

Businesses do not operate in vacuum. While this is true for all types of professional activities, the adage assumes particular significance when it comes to a field as dynamic as mobile app development. During our last Friday brainstorming session, we were reflecting back on how, less than 10 years back, all that we made were Java apps. Fast forward a decade, and we have started out with our first set of WatchKit applications. Keeping a constant, close tab on the latest changes and trends in the market has been key in whatever success we have had as a mobile app company. In the first AppBoard Tuesday of 2015 Q2, we will do a roundup of the facts and figures that every app developer needs to consider now:

  1. Dependence on cross-platform tools is increasing – As app developers are getting busier with more projects, they are increasingly turning to external, cross-platform tools for help. Since last November, the usage of these crash-reporting or app analytics monitoring tools has jumped by 7% (30% in March 2015 vs 23% in November 2014). In a recently conducted survey, it was found that nearly 85% of developers (both from app companies as well as indie developers) used these tools. The onus is on you to find out, and start using, the tools that would be helpful.
  2. Cloud technology is gaining in popularity – And at a rapid pace too. Scores of new mobile devices are being launched every quarter (with nearly all of them having smart cloud data syncing features), and the impending release of Apple Watch is likely to spark off more movements in the wearable technology sector. Cloud-based app development platforms are likely to grow in popularity in 2015 and beyond, and mobile app developers need to ensure that their applications have seamless cloud integration and syncing features. A standalone, offline app won’t serve much of a purpose.
  3. Secure mobile payment will be actively sought after – Google Wallet might have received only a lukewarm response, but the recent release of Apple Pay – together with the announcement of Samsung Pay in early-March – will help mobile payments move into new grounds. According to a section of the worldwide app development community, the usage of apps that support m-payments might even overtake that of credit/debit cards, by the end of the year (particularly in the West). Security remains a concern though, and it will be interesting to note how the different vendors/app developers handle this issue.
  4. Flat, skeuomorphic designs are back – This has been a direct ripple effect of the flat design of iOS 8 and the ‘Material Design’ of Android 5.0 Lollipop. Professional UI/UX designers have started to add the elements of height and depth to the elements of their apps (especially in gaming apps), to provide a more realistic feel to users. Layered displays and layouts, with transparency in the UI elements, are being deemed as ideal for most new applications.
  5. Developers are no longer obsessed with immediate payoffs – Even a couple of years back, most app developers believed that “If I can make ‘em, people will download ‘em, and I will earn handsome financial returns real quick.” Thankfully, that mentality has significantly changed – and at present, over 55% of mobile app developers consider getting a foothold in the app-making business as their primary concern. Once they are inside the so-called ‘Internet Of Things’ (IoT), they are prepared to wait it out – before profits/returns actually materialize. Over the next few months, the IoT domain would expand beyond the two mobile platform biggies – Android and iOS. The takeaway for new, aspiring app developers from this: You need to be patient…making mobile apps does not translate to overnight riches!
  6. Shorter app development cycles – The entire timeframe between the conceptualization of an app idea and the completion of the app project is getting shorter, and this trend will continue in future too. With mobile app companies taking up more and more projects, the race for meeting deadlines (while ensuring that client-specifications are being met, and there are no compromises in the quality of apps) is getting hotter. It is all about being ‘Quick To Market’ and delivering optimal value to customers. If you come up short on either count, you fail.
  7. People are seeking more contextual information from apps – And that’s precisely why app development experts have predicted that, more and more applications from now on will have location-sharing features. Depending on the exact location of any person, a mobile application will be able to provide customized service to him/her (for example, a road navigation app). Developers, however, should not include location-sharing in mobile apps for kids. That can be risky.
  8. Enterprise apps beat Consumer apps at the money game – Between enterprise apps and general consumer apps, more money lies in the former category. Researches have shown that less than 20% of consumer app developers manage to break even, while this figure shoots up to 45% for developers of enterprise apps. The reason for this is simple: the general public is not particularly interested in forking out real cash for downloading (hence, the prevalence of so many free mobile apps). Business houses, on the other hand, are much more willing to make investments on new mobile software – which are likely to prove useful in the long-run.
  9. Native apps will face a strong challenge – By the end of 2014, hybrid apps had started to grow significantly, and they will eat up at least some of the popularity of native mobile applications. Business enterprises, in fact, are mostly in favor of hybrid apps – since they help in reaching out to multiple mobile platforms with greater ease. Mobile web apps have precious little chances of making a resurgence though.
  10. Mobile games will have more social interaction features – We are not only talking about multiplayer mobile games replacing the single-player ones. In 2015, app developers have to focus on creating gaming apps that offer easy social interaction and integration. To put it in another way, modern-day mobile games need to double up as social networking  applications as well. Apps in this genre would, of course, require regular upgrades too – to keep the user-base engaged.
  11. iOS developers need to be able to ‘speak Swift’ – Objective-C isn’t going anywhere, but even so, the ability to code in Swift has become a must-have quality in iOS app developers. Within a quarter of the release of Swift, more than 20% developers had started using it (according to a study conducted by VisionMobile). More interestingly, many of the Swift developers across the world are working on iOS projects for the first time. If you are reading this, and are yet to try your hand with the Swift programming language…you are already way behind the eight-ball!
  12. Freemium apps and in-app ads will become more common – Instead of creating paid apps, the ‘freemium’ model (free apps with in-app purchase options) is gradually becoming the preferred method of mobile app monetization among developers. App companies have also started incorporating different types of ad networks, for including in-app advertisements – without messing up the user-experience factor. Juniper Research has predicted that the total value of app advertisements will be almost $7.2 billion (all mobile devices included).
  13. Greater emphasis on connectivity – Connectivity via mobile apps is getting more cutting-edge than ever before, thanks to the arrival of technologies like Bluetooth LE and Apple iBeacon (GPS is, for all purses, an ‘old’ technology now). The wide range of smartwatches and fitness bands available offer their own brand of app connectivity options as well. Coders of new-age iPhone/WatchKit/Android apps have to be masters at drawing up algorithms that will help apps monitor the behavior (and not just the location) of users, round the clock.
  14. Growing importance of user-experience – Any mobile app development company worth a mention places due importance on the user-experience factor of its applications. However, in 2015 and beyond, this task will become more and more challenging – with new devices hitting the markets with regularity. This, in turn, will bring the spotlight back on mobile app analytics tools. Developers will have to monitor the performance of their apps on different devices, seek feedback from users, and customize their products accordingly.

The gargantuan sales figures of iPhone 6 and iPhone 6 Plus have shown that the market is indeed ready for ‘larger’ handsets (the popularity of devices with 5” or higher screens will zoom up by 210% this year). App designers and graphic artists will need to keep this in mind. Hidden menus in apps is yet another app designing technique that has found favor among users. App store optimization and general mobile app marketing methods are becoming smarter too. It’s an exciting time to be a mobile app developer – but if you do not keep abreast with what’s happening around you, your business will suffer. The more information…recent, relevant information…you have, the better it is for you and your app company.

 

That brings us to the close of yet another edition of AppBoard Tuesday (ABT). Our ‘Rapport Card’ app (https://www.behance.net/gallery/22802271/Rapport-Card) will be released soon, and we have taken up a few new iOS/WatchKit app projects too. Here’s looking forward to a successful second quarter of 2015!

 

Stay tuned for next week’s AppBoard Tuesday, where we will put another relevant app-related topic under the scanner. Until the next time, take care…keep learning…and love thy apps!

 

Learn To Use SpriteKit For Game Development In The Best Possible Way

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)

The number of iOS app developers using SpriteKit for making custom mobile games is increasing at a rapid clip. For coders who wish to start using SpriteKit, we have here shared a few important guidelines.

 

SpriteKit would easily feature among the most popular animation and graphics rendering tools among iOS app and game developers worldwide. The top-notch user-friendliness of the tools is one of the key reasons behind its enormous popularity – apart from its obviously vast set of customized features. The learning curve of SpriteKit is far from being steep, and all that newbies require is a bit of guidance, while working with it. If you are planning to make an iPhone game with SpriteKit, the following tips would come in handy:

 

  1. Initiate Xcode – It would be advisable to install the latest beta of Xcode 6.3 first. Once the installation is complete, you will have to start up the built-in Game Template (coded with Swift). Doing so is easy enough: click File → New → Project, and navigate to iOS → Application → Game. Once you have clicked on ‘Next’, a dialog box – prompting you to enter the Project name, programming language, devices, etc. will appear.
  2. Be familiar with SKAction spins – Next, the mobile game development experts working with SpriteKit will find that a single-scene app (with sample text area) has been automatically created by the built-in Xcode game template. Spin actions, a central component of basic Sprite animations, can now be made – with the help of SKAction (check the label node in MyScene.m). There are two different components of SKAction – the first for single radian (180 degrees) spins, and the other for infinite loops. Check out how both of these work.
  3. For large games, optimize the Tree Content – In theory, there is no need to remove any of the nodes from the parent ‘Tree’ in SpriteKit – irrespective of how many ‘children’ it already contains. However, coders from leading iOS game development companies opine that deletion of unnecessary nodes speeds up the coding process, and minimizes the chances of errors. Broadly speaking, if a node is not related to any action, or is not serving as a physics engine related to the actual gameplay – it is best to remove it from the Tree. The same goes for nodes that are not likely to be rendered anytime soon. Remember, you need to do this only if you are making a relatively large iOS game.
  4. Use particles and atlases – First-time iOS app developers might not be aware of this feature. SpriteKit comes with a wide range of atlases and gaming particles embedded to it, and they can be used to add a high level of customization to games. What’s more – even videos can be considered and deployed as sprites. There are several interesting masks and image effects that can be used too.
  5. Get rid of GameScene.sks – When you graduate to making mobile games that require visual creation of sprites and scenes, GameScene.sks would be necessary. For starting out with test apps on SpriteKit though, manual programming is a way simpler option. Move it to Trash (when prompted), and then, start working on the Gameviewcontroller.swift playground. Make sure that, under ‘Deployment’, the boxes next to ‘Landscape Right’ and ‘Landscape Left’ are checked, while the one against ‘Portrait’ is unchecked.
  6. Add your texture(s) – The groundwork is done, and mobile app and game developers can now start adding textures to their programs. These textures double up as the coders’ own sprites as well. Find out how you can use the components of image files to create textures. Name the texture/sprite and add an (arbitrary) position to it. You will need it later to add to a game scene. Repeat the process for creating multiple textures.
  7. Create the graphical content with care – Even small mistakes at this stage can lead to crashes in the node trees/scenes. Professionals from the mobile game development industry advise new users to avoid directly adding either heavy physics bodies, or any of the content nodes (creating content layers with extra SKNode objects is a better option). Nesting the effect nodes and the clipping nodes inside the node tree can be problematic as well (especially when you are creating a complex iOS game). The particle birth rates (during the creation of emitter effects) should be maintained at low levels. This will minimize risks of overloading during particle animation and rendering.
  8. Add your sprite to a SpriteKit scene – You know how to create textures/sprites, and now it’s time to actually use them on the main SpriteKit scene. To do this, you will have to call the ‘spritenodewith ImageNamed’ method, and then pass the name of the image (which you had saved earlier while creating the texture) through it. Then you will have to add the ‘addChild’ function to the scene, and specify the position coordinates of your game character (for instance, a fairy). In case the character is not visible, check for errors in the viewDidLoad (in ViewController.m) method.
  9. Incorporate Actions to the gameplay – The three action functions available in SpriteKit add to the convenience and customization options of this game development tool. You can add ‘SKAction.removeFromParent ()’ to remove characters from a scene, ‘SKAction.moveTo ()’ to make a character move towards the left of the scene (remember to specify the duration of movement as well), and ‘SKAction.sequence (_:)’ to clump together an action sequence/loop. You need to ensure that the characters appear lively, and more importantly, keep coming. That’s what will make the gameplay interesting.
  10. Use physics system simulations – Adding motions and special effects (pixie dust, anyone?) to game components is all very well, but do not miss out on the physics effects that can be seamlessly added in the SpriteKit tool. Create a self.physicsBody method, and mention the screen edge boundaries in it (this would ensure that sprites do not suddenly go out of the scene). After that, create a physics system for each sprite that you have created and added. From displaying gravitational effects, to the impact of particle collisions – in-game physics in SpriteKit can make iOS games a lot more realistic and engaging.
  11. Save game levels in scene archives – SpriteKit offers complete support to creation and maintenance of archives. This, in turn, makes it possible for game developers to: a) save the different game levels as scene node archives, and b) create separate archives for the all nodes that have been pre-configured. The game assets can be created by adding the Property list (which contains all saved SpriteKit data). While referencing nodes, use unique name properties instead of simple hardcoding.
  12. A bit about animations – Let’s turn our attentions towards the process of creating game animations via SpriteKit here. Note that each and every action is defined as a separate object. The SKAction class defines these objects, and when the actions are executed (in the nodes), the animation frames are processed. If you wish to override preset methods and/or add personalized processes per-frame, that can also be done by using scenes. Keep in mind, while certain actions need several animation frames, others can be executed within a single frame.
  13. Make the subclasses compatible – In SpriteKit, NSCopying and NSCoding protocols are supported by the node classes. App and game developers, while introducing new instances in subclasses, need to ensure that the latter contain these behaviors as well. For both OS X and the iOS platforms, there are custom event-handling codes that have to be implemented. Ideally, create your own calling conventions, to avoid confusions/errors during rendering.
  14. Using blend mode and viewing diagnostic messages – In case any form of opaque content is being used in your sprite(s), you will have to use a separate ‘blend mode’ – SKBLendModeReplace. In general, the alpha blend method is used for blending sprite contents and particles. The SKView class in the game development tool also allows users to check diagnostic messages. If you feel that your game is laggy, external tools – like OpenGL – can also be used to check the timings of the separate components of the game.

To locate the precise coordinates of a user-touch, the SKNode of SpriteKit has two extremely handy methods – previousLocationInMode (_:) and locationInMode (_:). Separate loading classes are required for storing textures that are called only once (when the game starts). Once you have made your SpriteKit/Swift game, test it on actual devices (iOS or OS X, as the case may be) – and find out if there are any CPU/GPU compatibility issues. SpriteKit is an excellent tool for making iOS games – and you can start developing as soon as you get a hang of working with it.