Chupamobile Blog

The App Source Code Marketplace. Buy Apps. Sell Apps.


Today, anybody can have an idea for an app, but can somebody without technical skills build an app? The answer is “yes.”

A few years ago, you would have needed coding skills or a big budget to develop and launch an app or a game on the app stores. Those days are over. Affordable alternatives are conquering the market and creating a new paradigm for app development.

If you are one of those ‘idea people’ who would like to build a mobile app or game, this article will introduce the best options that don’t require coding skills. It’s easier than you think!

Today, anybody can easily launch an app. Even without coding skills. >> Click to tweet


What To Keep In Mind Before Building a Mobile App

First of all: do you have an idea? If you are currently out of ideas, you can ask friends and family for inspiration. Then you might want to do some market research. It will provide you a good overview of what may and may not work.

After market research, work on defining your goals. What are your motivations for creating and launching an app? Are you doing it to have fun? To gain a sense of personal achievement? Or is it to build a money-making business? Depending on your motivations, you will want to choose a different app development option.

Another important point that will help you choose the best method to build your game or app is time, or more exactly, timing. If your goal is to make money, find ways to build apps quickly! If you want to gain personal achievement and have fun, a DIY option may be better.

As usual, money will be critical in choosing one method over another. You must define a budget for each app you want to build or, if you prefer, a total sum for your entire app portfolio.

Before choosing a method to build your next app, you must define your goals, budget and timing requirements. >> Click to tweet

Finally, you need to be honest with yourself. You need to evaluate your level of commitment to the project. What amount of time and effort are you likely to dedicate to your new business? Are you willing to manage a remote team of developers? Will you mind working late and on weekends? Depending on the level of commitment you establish, some methods will fit better than others.

Find the App Building Formula that Works for You

Keeping in mind the requirements you have defined, you need to find the best method to build your mobile game or app. Here are four main options listed with their pros and cons. Which will work for you?

DIY 1: Learn to code

Learning a programming language and building your own apps from scratch may be a thrilling challenge for some…and an impossible hurdle for others. If you want to learn how to code, you can find courses on platforms like Udemy, Codeschool, Bitfountain or Mammoth Interactive.

bitfountain website

Bitfountain app development courses

Whichever method you choose to build your app portfolio, it is always useful to have some basic knowledge of app development. This allows you to make slight changes to the apps or even to better manage your developers. But it’s not a must. There is life outside coding!

If you are an inexperienced and curious appreneur, why not build your own Flappy Bird to get started on iOS development? If your idea is to build a complete social network, however, coding it by yourself from scratch will probably not be a good idea. It would probably take ages to get it finished!

Pros: Work that depends on your skills alone, low budget required (even if time is gold!).

Cons: >High level of commitment and time required.

DIY 2: App building platforms

There are hundreds of app building platforms that allow you to build your first Android or iPhone app without knowing how to code. Some even have free plans so you can try them before buying. These are an easy and cheap way to get started, but the results are often far from outstanding due to the limited options in terms of structure, design and features.

App building platforms are a good choice for simple projects like blog apps or basic business showcase apps. However, if you want to build a custom mobile game, you will not find much help with these tools because the customization possibilities are quite limited.

Pros: Low budget required, fast process.

Cons: Low quality, hard to customize, medium level of commitment required.

DIY 3: Hire freelance devs

If you choose this method, you can find freelance mobile developers on platforms like Freelancer or Upwork. There you can post a job that lists your requirements. In order to avoid “automatic” proposals for your project, a good tip is to include a “human verification test” on the job description. In this article, Ben Philabaum recommends something like, “In your bid, include the answer to 2+2 so that I know you read this.” This will help you slim down the list of proposals because there are often hundreds for certain projects.


Do you have a concrete idea for your app and lots of time to manage a team of devs? This could be an option that works for you. The sky’s the limit! Or is it your budget? Developing an app from scratch, even if you have more than one developer working on it, takes months and costs thousands of dollars. The question is, “Is it worth it?”

A good way to build any kind of mobile application, but especially if you have an extremely innovative idea that is completely different from any existing app or game. For instance, you can build your restaurant app or a custom-made casual game.

Pros: High-quality results (if you hire a good team), high level of customization.

Cons: High level of commitment required to manage a remote team, slow process, big budget required, hard to find a good team of skilled devs.

DIY 4: Use ready-made app templates

Do you have an awesome app idea? Someone else has probably had it–or something similar– before. There are thousands of app and game templates you can use as a base to build your next app. Before starting your app from scratch, make sure you have made a good research and save you a big headache.

You don’t have to reinvent the wheel. But you don’t have to be a copycat, either. You can customize app and game templates and create something completely original. (Ask our customization team if you want more info!).

Building apps: Don’t be a copycat. But don’t re-invent the wheel, either. >> Click to tweet

Making apps with fully tested app templates is the best way to ensure a high final quality product. This formula is often the most efficient in terms of time and money. Instead of taking months and spending thousands of dollars, you will need only a few days and a few dollars to launch your app on the stores.

If you want to create a complex project like a poker mobile game or a Instagram-like app, this is the cheapest and fastest method you can choose without compromising quality. It also works for  simple games and  apps for your business. The possibilities are (almost) endless.

Pros: High-quality results, low budget required (save up to 90%), low level of commitment required (you can focus on marketing!), fast process.

Cons: The quality of your app depends on the quality of the source code you buy; if you buy a poor app template, you’ll get a poor app–and vice versa!


Our two cents

Now you know you have four different ways to build a mobile app if you don’t have coding or design skills. Still confused about which one will work best for you? Just remember to give app development the importance it deserves–not more. Don’t work in your business, work on your business.

Building apps: Don’t work in your business, work on your business. >> Click to tweet

ASO GuideLeave some free time to work on other parts of the business like marketing, data benchmarking and ASO (App Store Optimization). You can download our free Guide to Boost your App’s Downloads and get started today.

Download The Complete App Store Optimization Guide here.



Remember the days when children wanted to become astronauts and parents wanted them to study law or medicine? Well, those days are over. Today’s hottest professional prospect is to become an entrepreneur, both for kids and parents. I’m not talking about the old-style entrepreneur; I mean a new kind of businessperson: the appreneur or mobile application entrepreneur.

Today’s hottest professional prospect is to become an appreneur or app entrepreneur. >> Click to tweet

Maybe you haven’t heard this word before, but I’m sure you are aware of one of the fastest growing industries: the business of apps. Yes, you guessed it: an appreneur is an app entrepreneur or, in the words of Wikipedia, “an entrepreneur who works in the mobile device application industry, as well as in the emerging micropayment economy.”

Can you become an appreneur?

Smile! Anybody can become an appreneur. You don’t need to be a developer to create an app. You can make money from apps whatever your professional background is. Everyone from teenagers to retirees and, of course, professional developers, can make money from the app store. You can find amazing stories of successful appreneurs: indie devs that became millionaires within 48 hours and brand new app entrepreneurs that are breaking through to the top of the app store. Truly inspiring stuff.

However, despite the high profitability of the app market, becoming an appreneur is not all peaches and cream; you must work hard and find your luck. Fortunately, we are here to help. We’ve done our research from the thousands of appreneurs here at Chupamobile, and have created the top 10 steps to become a successful appreneur.

10 do’s to become a successful appreneur

#1 – Become a master of the app stores

iTunes and Google Play are your new home, so make yourself comfortable. Get familiar with the app and game categories, the trends, the most successful publishers, and the short- and long-lived top apps. Analyze the characteristics of the best apps and publishers and replicate them in your portfolio.

If you want to make the difference, start to study App Store Optimization–ASO–best practices. This will make it easier for your potential users to discover your apps. We have packed a free downloadable App Store Optimization guide that is an amazing starting point.

#2 – Learn from the worst to become the best

Study the light side of the app stores, but also their dark side. When you build an app, you must be clear about what not to do. Have a look at the bottom of the charts and try to understand what they are doing wrong. What are the constant differences between the bottom and the top apps? Graphics quality? Description? Concept? Gameplay? App Reviews? Once you have a clear idea about what not to do, it’s easy: don’t do it.

When you build an app, you must be clear about what not to do. >> Click to tweet

#3 – Find your amazing way to build amazing apps

Since you started reading, you were probably wondering, “How do I create an app?” There are many ways, and you must find the one that works for you. You can learn app development and build your own apps–which is awesome but also a long and difficult process–or you can focus on marketing and data analysis. This is usually the best approach.

When you choose the marketer route, you have two options to build your apps: you can hire a freelance team to work on your project or you can customize ready-made app templates. If you have enough time and money, strong leadership skills, and are able to properly manage a remote team, hiring external freelancers on Freelancer or Upwork can be a good option. If you want to save time, money, and headaches without compromising your apps’ quality, use the app template + customization combo, such as the one offered by Chupamobile.

#4 – Keep it simple

The most successful apps are those that focus on performing a single task perfectly; on the gaming side, the top chart positions are always occupied by simple casual games. Just think about Flappy Bird or have a look at the Ketchapp app portfolio; what can be simpler than those games? But people love them and they always top the app charts. As a result, they are very successful appreneurs.

The most successful apps are those that focus on performing a single task perfectly. >> Click to tweet

So embrace simplicity! Do not try to create a multifunction app or a super complicated game. This would require a lot of resources and decrease your chances of success. Instead, create simple and easy-to-use applications–a win-win!

#5 – Get the right tools

Here you must do some exhaustive research. Do not settle for average; find the best tools.

You are going to need analytics SDKs, ad networks and rating tools. For Analytics we suggest you check out Appsee and Flurry. Regarding monetization tools, we have selected the 7 best ad networks to maximize your revenues. Furthermore, if some of your apps require a server-side integration, look for a good BaaS like Parse or Kii.

Once you’ve integrated the correct tracking and monetization tools, you will need good ASO resources like App Annie or Sensor Tower. They will help you optimize your positioning on the app stores by finding the right keywords to use, the best categories to list your app within and, of course, the ability to track your apps and those of your competitors.

Speaking of App Store Optimization, we have packed a full ASO free guide that includes all the tricks to help you optimize your positioning on the stores and boost your app downloads. Download it for free here.

#6 – Focus on data analysis

This point is critical to achieve success and, more importantly, to maintain it. Make sure to place a lot of effort into analyzing and benchmarking your data. . Of course, I’m taking for granted that you have followed the previous point to perfection so that your app is integrated with the best analytics tools. If so, let the party begin!

Check your apps’ insights daily and create weekly and monthly reports. Try to discover positive patterns and trends, and then replicate them. Correlate your data with your app’s performance through platforms like App Annie, which will also be helpful in keeping an eye on your competitors.

If you allocate enough time to this task, you will soon become a master of data benchmarking and will see the results on your app’s pirate metrics – Acquisition, Activation, Retention, Referral and Revenue. AARRR!

#7 – Cross-promote your apps

Once again, learn from the big ones. Can you guess the Ketchapp and King business model? Right–cross-promotion. By cross-promoting your apps, each piece of the puzzle is important. If one of your apps gets a good ranking it will help your other titles climb positions.

Choosing this model makes it essential to build an app portfolio. You need a solid ensemble of apps that share a similar target. And here we go back to point #3: you cannot spend months building one single app, you must be fast.

#8 – Go viral

Choosing the right tools (point #5), means choosing the best social-sharing add-ons for your app. Make it easy and awesome for your users to share their results if it’s a game, or other data and images if it’s an app. This will drive their friends to download and try the application, even without investing one cent in advertising or PR.

One of the newest methods is acquiring and engaging users through video. Kamcord and Everyplay are a couple of great tools that allow users to record their game replays and share them with their friends on social networks. If you don’t believe this is a brilliant idea, have a look at their growing communities.

Another good idea to boost engagement, and so virality, is to provide exclusive bonuses and prizes to your most loyal users. They are your best ambassadors so give them the treatment they deserve–They will pay you back!

#9 – Use bloggers and influencers

This is a different way to go viral. Get familiar with the main review websites (like 148apps), bloggers, and influencers of the app and game industry. Develop a nice story around your app and send it to them. If you are good at storytelling, you have a good chance to get your app featured on these websites. This is incredibly helpful in  getting publicity and generating downloads.

Are you focused on gaming? Don’t miss this one: last week, the (awesome) guys of Product Hunt launched the beta version of their first standalone category: games. Can you imagine the buzz of getting your game featured on Product Hunt Games? Based on our own experience, I can tell you it’s huge!

Define and schedule a complete ‘launch plan’ that leverages media and influencers. This can result in  an initial boost in downloads that will hopefully drive your app to one of the top positions. Then you will only have to work on maintaining that positive trend.

#10 – Practice, practice, practice

Like in school, the best way to improve is to try stuff, test and repeat. You will spend tons of hours reading blogs, analyzing data, learning marketing skills, testing new ideas, trying new tools and so on. This will help you upgrade your method step by step.

Like in school, on the app business the best way to improve is to try stuff, test and repeat. >> Click to tweet

You will (probably) fail and then will have to stand up again. You will (probably) not succeed on your first try, but don’t become desperate! It has happened to the best of us. Keep calm. You will (probably) rise from the ashes. In the meantime, keep trying stuff, testing and repeating. You never know how close you are to success!

As in every other industry, it’s not easy to get to the top of the app business. But I can tell you that it can be done, and the end result is worth the fight. Then, if you still want to be an astronaut, feel free to book a spaceflight. You will (probably) have enough money for it.



We have an amazing deal on a top-notch App Template! Movie Cutter for iOS is a Premium Video Editing App.

I’ve said “top-notch”. Yes: Movie Cutter is actually worth $599 and now you can get it at 83% off – only $99!


Top Features:

  • Projects View
    • Create new projects
    • Rename
    • Delete
  • Edit View
    • Import your videos into timeline
    • Shoot with the internal camera and your clip is instantly added to the timeline
    • Everything runs in real-time
    • Clone
    • Trim
    • Delete
    • Export to Movies
    • View (choose between 3 different bit-rates)
  • Movie View
    • Manage all your movie collections
    • Share you movies on Youtube or save to camera roll
  • Universal App for iPhone and iPad
  • Setup in storyboard

And the best part is that Movie Cutter is easy to reskin! Launch today your Premium Video Editing App for only $99!



If you are looking for a moneymaker Game Template, we have the one for you. Steampunk Defense makes 3k downloads and $200 in revenue DAILY! This full featured Tower Defense template allows you to build any Tower Defense game for both iOS and Android.


Monetization Features:

  • Level editor
  • Chartboost
  • Vungle: Video’s within apps.
  • Supersonic (Videos, Interstitial and Offer Walls)
  • Ad Colony (through Supersonic mediation)
  • Flurry
  • In-App Purchases

Steampunk Defense is 60% off for 48 hours only! Don’t miss this limited-time offer.



During the Apple’s World Wide Developers Conference 2015 that took place last Monday 8 June, we were introduced to three new features on Apple’s game development frameworks: GameplayKit, ReplayKit and Model I/O.

They were presented in a very short instant but it was enough to leave us wondering what were them about. Let’s see what each of these SDKs has to offer.



GameplayKit offers an engine that will help us develop games with complex rules. Thanks to it we can also define real world behaviour and make it interact with the characters on the game.

In addition, it comes with a state machine minimising our intervention defining enumerations of states and paying attention to update it on the specific moment.

And one of the features I most liked is that the framework contains a randomisation engine to avoid us writing a spawnRandomEnemy method on each game.

Between the sub-features inside GameplayKit we can find:

  • Randomisation: Thanks to GKRandom, GKRandomSource and GKRandomDistribution classes we can define and debug unpredictable game plays.
  • States Machine: GKStateMachine and GKState gives all the potential to create a states machine to handle our game.
  • Entities and Components: Are focused on providing an architecture to design gameplay for reusability. It is supported by GKEntity, GKComponent and GKComponentSystem.
  • Minmax strategy: We can now include some artificial intelligence for turn-based games. GKMinmaxStrategist and GKGameModel make it real.
  • Pathfinding: GKGraph and GKNode allows us to create easily a path for the non-player characters to follow.
  • Agents, Goals, Behaviours: Thanks to GKAgent we can specify movement behaviour of game entities in terms of GKGoal
  • Rule system: We can create complex reasoning rules and emergent behaviour thanks to GKRuleSystem and GKRule.


This feature will allow developers to add the possibility of recording in-game videos on their games. This way players will be able to record and edit a video and share it online.

Model I/O

Model I/O is a kind of upgrade for SceneKit as it provides new physically-based materials, models and lighting.

Let’s take a look to the resources it comes with:

  • Importing and exporting 3D assets: Thanks to MDLAsset class we can represent a collection of objects to describe elements of a 3D scene such as cameras (MDLCamera) or lights (MDLight).
  • Working with 3D model data: MDLMeshBuffer, MDLMeshBufferAllocator and MDLVertexDescriptor provides the support to minimise the effort on working with vertex and index data.
  • Processing and generating asset data: The MDLMesh class provides some methods such as addNormalsWithAttributeNamed: creaseThreshold to generate and process when rendering scenes. Also MDLTexture makes easier working with procedural textures and MDLLightProbe generates light source from the contents of the scene.
  • Describing realistic rendering parameters: MDLMaterial, MDLPhotometricLight, MDLPhysicallyPlausibleLight and MDLCamera helps rendering physically based surfaces, lights and cameras.

Both GameplayKit and Model I/O are steps forward in the path Apple began walking the time SpriteKit was first introduced, but I must recognise that ReplayKit has taken me by surprise.

The ability of recording and sharing in-game videos was only available for computer and video console games before but now we can offer one of the most interesting features of today’s games.

I’m going to start playing with these new features as soon as I publish this article, I can’t wait!



You’ve always dreamt of launching an app with thousands of users. Well, now you can! Check out the Complete Social Network, an Instagram-like social. Launch a fully featured social network and start building your empire with this amazing template.


  • Universal iPhone/iPad app
  • Log in with classic username and password or Facebook button
  • Post photos and videos
  • Follow your friends and loved ones
  • Like and comment on your friends’ photos
  • Share photos to other social networks
  • Hashtags and user mentions (tags)
  • Edit and personalize photos with a vast amount of filters and effects (NO Aviary SDK)
  • Personalize your profile page, set your own profile and header picture, customize the color of your page and leave some personal information for your followers
  • Private and group messaging
  • Activity and push notifications
  • Change your password, enable or disable location services and contact the support

Complete Social Network Template is 67% off for only 48 hours! Hurry up before the Exclusive Launch Offer ends!


Our review team works hard every week to bring you the best App and Game Templates for your app portfolio. Furthermore, Valentina prepares a weekly selection with the best products listed on our catalog so you don’t have to lose precious time searching. Just focus on your next app!

These are Valentina’s picks of the week. Enjoy!

iOS App Templates



Are you an Instagram lover? Ok, then grab this template and create you own image sharing app like Instagram and get famous.


This or That – Anonymously Post Two Photos

This or That is built to be redesigned for several purposes. There are three tabs, “Feed”, “Me”, and “Post”.


Swift Wallpaper Clean and Fast Reskin App Template

With Swift Wallpaper app, you can create a wallpaper app, a photo gallery app and much more.

Android App Templates


Jump The Frog

Jump Frog main concept is to make an addictive game, easy to play, let’s user put their score on leaderboard so they can challenge each other.



Radio Match is a native Android application to listen to different radio stations online. It supports multiple radio stations and it’s great for creating Radio Apps.


Dubby – The New Way To Communicate

Say it with video! Choose a famous sound, record a video on it and share the dubbed video with your friends.

Unity App Templates


Endless Bubble Shooter Woodland Bubble

Full complete project for your endless game + integrated ADMOB with banner and interstitial. Colorful, beautiful, sounded.


Jumpy Bumpy 2D Infinite Side Scroll Racing Game

A 2D infinite side scroll jumpy racing simulation game with an addictive gameplay.

UI Graphic Assets


Spatial Creation Kit: Side Scrolling Mode

Build your own spaceship for your side scroller space shooter games with the available components.



We know many of you are or have learned iOS and Android development thanks to online courses, tutorials, webinars and blogs. If this is your case, keep reading because this is for you: Today we have the pleasure to interview Pablo Farías Navarro, CEO and founder of Zenva Academy. Independently of your knowledge level, Zenva is one of the best resources out there to learn mobile development with courses of every type and platform.

Besides the amazing tips Pablo has prepared for us, you will find as well a free Swift tutorial at the end of the article: “Getting Started Making Games with SpriteKit and Swift”. Enjoy!

Melissa: Hi Pablo, it’s great to have you with us today! I would like you to explain us your story; how did you get started in the online learning business and why you decided to found Zenva Academy?

Pablo: Hi Melissa. Thanks for having me here. Back in 2011 I was trying to learn how to make games with HTML5, and there weren’t many good resources or tutorials. I ended up learning it the hard way, by looking at the source code and trying things on my own.

Then one day I stumbled upon Udemy, where people made online courses, so I thought “well, I’ll make a course on HTML5 game development”. I did it mostly as a hobby, expecting to maybe make some money, but what happened then was that people really liked the content I was creating, so I started making more and more content.

Eventually, Zenva changed from a freelance development agency to an online education startup. We then went from just content creation to running our own e-learning platform Zenva Academy.

M: More and more people are approaching mobile development these days; do you think online learning is the best method to become an app developer now? Can a user find everything he needs to become a pro on a platform like Zenva?

P: Yes. There are many advantages with online learning. The first of them is cost. In the US, Australia and Europe a 1-2 full day workshop on iOS app development doesn’t cost less than 2k USD (not to say a certified degree which can cost dozens of thousands of dollars), whereas our courses cost usually less than 100 USD with a similar amount of content.

By learning online, you can organize your time and go through the lectures at your own pace. Moreover, you can really customize and own your own learning process, as you can enroll in different courses to cover the specific topics you’d like to learn, to make your own custom curriculum.

At Zenva Academy we have a comprehensive selection of courses on mobile app development and app design including several Real World applications based on client work done by our instructors, so, yes, you can totally become a professional app developer and start taking on real clients after following our courses!

M: Which would be the 3 most important things wannabe-developers must keep in mind while learning online?

P: Completing online courses in a busy world is not always easy, so we did a survey to over 300 Zenva students who completed their courses to find out how they did it. It came out to three aspects:

  1. Planning. Students who complete their courses set fixed days and times each week to take their lessons and stick to it.
  2. Motivation. Keep in mind the final goal. What are the benefits to you if you learn how to make iOS and Android apps?
  3. Go beyond the video lectures. Watching the video lectures is a must, but most courses also have downloadable material. If you want to learn well you have to modify and play with the course examples, not just be a passive learner.

M: Talking about those app marketers and appreneurs that work mainly with app flipping, ideally they don’t need to master app development but should have some basic knowledge to be able to reskin an app template and make small changes to the code. Is Zenva a useful resource for them? And what tips would you give them?

P: Yes that’s true. The main benefit to learning some basics of native app development, if you are into app flipping is that it’ll make you faster at your work. You don’t need to know how to build apps from scratch, but knowing your way around XCode or some Objective-C and Swift can make it easier for you to modify your templates and extend them.

Our iOS courses and our upcoming Android M course cover all the basics so that in just a few hours you can know enough to do these modifications in your templates and become more efficient.

M: And, besides coding, let’s talk about app publishing: any advice on the marketing side of the app business?

P: There are many analytics that app marketers look into, usually being user acquisition the main one. But I think the most important one by far is user retention. Try to put that extra effort to make something users want to use over and over. With poor user retention, no matter how much you invest in user acquisition, it’s like pouring water into a bucket full of holes.

A 10% increase of user acquisition has the same effect as a 10% improvement in user retention. Given how much people are paying these days on paid ad campaigns to acquire a single user, which way to go is actually cheaper for you?

Maybe simple things like a better onboarding process on your app or game, or a level 1 on your game that’s shorter and more fun can improve retention greatly and can be much cheaper than putting in more and more money in ads.

Only spend money in ads once you got something people want to use/play, that’s called “product market fit”.

M: Thanks for your time, Pablo, and for the amazing tutorial you are offering to our community!

P: Thank you, Melissa! Nice talking to you. All my best wishes for the Chupamobile community!


Getting Started Making Games with SpriteKit and Swift

SpriteKit is Apple’s official framework for building 2D games. Before the launch of SpriteKit and SceneKit (Apple’s 3D framework for games) there were 3rd party solutions you could use to develop games for iOS, including Cocos2d, Cocos2d-x, Marmalade and Sparrow etc. While the other frameworks are also quite powerful and have lots of community support, SpriteKit and SceneKit enjoy the benefit of official Apple support and optimization to run on the platform natively.

This tutorial is a first step in starting game development in SpriteKit with Swift language (a new language for OS X and iOS app development). It is assumed that the reader is familiar with Swift and UIKit so details about the language itself will not be provided. If you are not yet proficient in Swift it is recommended you read up and follow some tutorials on the language before you continue on this tutorial.

This tutorial was created by Ahmed Belal at ZENVA. We create and resell online courses on game, app and web development. Feel free to check any of our iOS courses:

Fairies, Fairies Everywhere!

You may have heard the word “sprite” before or it may be quite new to you. In simple words a sprite is, in game development world, a single graphic that may be moved or otherwise manipulated on screen individually. For example a player character could be one sprite and every enemy character could be a separate sprite. Traditionally sprites are animated using different images with slight variations between each frame. When these images are swapped in and out in a sequence quickly it gives the illusion of a fluid animation. This is the same technique as is used in movies where the movie is actually still images being shown for a short time before being replaced by the next image or “frame”.

Sprite images are stored in a compound image called a “spritesheet” which packs in all the images close into a single file. Every individual image is called a “sprite frame.” As to why spritesheets are used instead of separate images you will have to look it up yourself but a very short explanation is that it provides great loading, storage and drawing advantages.

A sample spritesheet for a swimming fish with 13 frames

Pre-Tutorial Rant

This is just a basic description of some of the SpriteKit processes and structures. You can skip ahead if you want to get straight to the code part.

Objects that are drawn on screen inherit from the SKNode class much like UIButton, UITextField and UIImageView etc inherit from a UIView class in a UIKit application.

SpriteKit draws its nodes (“Scenes”) in what is called a “node tree hierarchy”, not very different from an HTML DOM tree. If you are coming from frameworks like Cocos2d will already be familiar with the node tree hierarchy. For newcomers: a node tree is like an actual tree structure. Each node has a position relative to its parent not unlike the frame of a view object that defines position of the view relative to its superview in any iOS application.

Different screens are implemented as SKScene objects or subclasses of SKScene class. Different “nodes” or objects are added to the current scene object for them to appear on screen. So in the SpriteKit world, SKScene objects work similar to UIViewController objects. You add sprites and buttons and other controls to the scene and they appear on the screen if the scene in question is currently loaded in view.


A hypothetical Main Menu scene hierarchy

The same holds for all other node objects. For example, an SKSpriteNode object (AKA sprite object) can have multiple sprites added as children nodes. If you were to move, rotate or scale etc. the parent sprite the children will be moved, scaled and rotated with the parent. All child nodes are affected by changes on the parent.

Right, let’s start off with the actual development and I’ll explain things as we do them.

Your First Game-Developer-Baby Steps

First off, you want to create a new project. Select “Game” template from the New Project window under the Application family in the iOS category.


Create a new “Game” Project

Now select Swift as the language, SpriteKit as the technology and Universal for the devices option. Fill in product name and bundle identifier, select a location and Xcode will create a project for you.


Project info

Once the project has been created you should have a similar Project Navigator tree in your left pane:


You should have an image with the name of “Spaceship” in your Images.xcassets catalog. We will be using this image for our sprite in this tutorial.

Your storyboard file will have a single view controller of the class GameViewController. This class has already been set up by Xcode to load your GameScene scene object as soon as the application starts. For the scope of this tutorial we won’t bother with the code of GameViewController and go straight to GameScene.swift file.

Spaceship Madness

When you open the scene file you will see that good guy Xcode has already created some boilerplate code for you. Go ahead and run the project. At this stage you should be able to see a “Hello World” label smack dab in the center of your device or simulator. Rotate the device and the whole scene rotates to fill the screen. You can disable screen rotation in GameViewController but we won’t be touching that subject in this tutorial.

Now tap anywhere on the screen and you will see a spaceship spawn on that point, cursed to rotate right there till the end of time. Multiple taps will continue spawning rotating spaceships.

Tinker Tinker

Right, now we need to delete everything from the GameScene didMoveToView and touchesBegan functions. Add the following code to the didMoveToView function:

1. var sprite = SKSpriteNode (imageNamed:"Spaceship")

2. sprite.position =  CGPoint (x:CGRectGetMidX (self.frame), y:CGRectGetMidY (self.frame))

3. self.addChild(sprite)

Now run the application and you should see a lonely spaceship appear in the center of the screen. Tapping anywhere won’t do anything as we deleted everything from the touchesBegan function. Pat yourself on the back; you’ve just added a new sprite to a game. You, my dear friend, are officially a game developer now!

I’ll explain each line now:

The first line creates a “sprite” variable and initializes it with the image “Spaceship” from the image catalog. This is the same image that was added by Xcode to our project on creation. The second line positions the sprite in the center of the screen. The third line actually adds the sprite to the scene node tree so it shows on the screen.

Beam Me Up, Scotty

I have to admit, a lonely, stationary spaceship is no fun. So let’s go ahead and make our spaceship move. Let’s move that spaceship, though we won’t be achieving hyperdrive speeds just yet. Add the following lines before the self.addChild(sprite) part:

1. let moveAction = SKAction.moveTo(CGPoint(x: 0.0, y:0.0), duration: 5.0)

2. sprite.runAction(moveAction)

Run the application now and you should see the spaceship slink towards the bottom left out of sight.

The first line in this snippet creates a “moveTo” action with a 5 second duration. The second line tells the sprite variable to run that action.

In SpriteKit if you wish to do animations you run an “action” on a sprite. Be it move, rotate, scale or something else you create an action for it and then tell your required sprite to run that action. You can also associate a “key” to each action so you could reference it later in case you want to stop an action midway or something else. There are actions available like moveTo, moveBy, scaleTo, scaleBy, rotateTo and rotateBy etc. You can also create your own custom actions following the SKAction guidelines.

Complex actions usually require running a couple of actions in a sequence. You can create a sequence action like SKAction.sequence(…) passing in a list of actions. When you run the sequence action the sprite will follow all the actions in the sequence as they were supplied.

Where To Go From Here

Play around with new sprites and actions. Try out the SKAction.moveBy, SKAction.rotateTo and other actions. Add new images to the project and explore all the actions you can do by manipulating node properties.

Tutorial Source Code

Download the source code of the tutorial here.



Remember Flappy Bird? Well, the game I propose you today is as addictive as it and, most important, has an unlimited reskin potential!

Vlad The Angry Viking is one of our Top Game Templates and you can get it for $89 instead of its full price of $399 – 78% off!


Besides its reskin potential, Vlad The Angry Viking is full of amazing features:

  • Easy to reskin
  • Cocos2d source code
  • Includes follow-along documentation
  • Endless gameplay
  • Optimized and balanced code
  • AppLovin ads installed
  • GameAnalytics installed
  • PlayHaven: app promotion, reviews, push notifications
  • GameCenter
  • Optimized for iOS 8
  • 64bit ready
  • Uses Chupamobile OneSDK for easy 3rd party integration

I’m proposing you a Top App Template for only $89! Start to think about some nice reskin ideas, you have only 48 hours!



A glance is a way that WatchKit offers to show relevant information from one application to the user and it resides in the WatchKit app’s storyboard.

When creating a glance programatically, we need to customize an instance of WKInterfaceController (the main class for implementing a WatchKit’s interface), which means that we should create a class that inherits from WKInterfaceController and implement the needed methods to set up the scene.

It’s very similar to a UIKit’s UIViewController but with the difference that it doesn’t manage any view. The difference is that the WatchKit interface controller resides in the WatchKit extension and responds to interactions with the Apple Watch’s elements on scene such as labels, menu controls or images.

The init and awakeWithContext methods should be implemented to initialise the glance interface and to set up the elements on scene. It’s important to call super at the beginning of the init method in order to create the connections between outlets and objects in the storyboard.

We can also take advantage of the willActivate method to update the glance interface previously to being shown. This method is triggered when its content is about to be displayed and should not be used to initialize the interface as it’s already initialized at this time.

If we have a page-based interface we can make use of the didDeactivate method, which is triggered when one page’s interface controller is offscreen.

A good approach to keep updated the content of a glance that is already on screen is to take advantage of an NSTimer object in order to trigger a call to an update method periodically.


Once a user taps a glance, the Apple Watch will launch the WatchKit app by calling the app’s main interface controller. At this point we can customise the appearance of the WatchKit app in two points:

1. At WatchKit interface controller level

In the WatchKitInterfaceController instance we can modify both init and willActivate methods to show the desired content.

On the other hand we can take advantage of the updateUserActivity:userInfo:webpageURL method where we can use the userInfo dictionary parameter to share the required information from the glance to the app. Thanks to this dictionary the app will be able to display a specific information (a specific interface controller) at execution time.

The  updateUserActivity:userInfo:webpageURL method can also be used to pass the current activity to another device using Handoff (which is a capability introduced in iOS 8 to transfer activities performed by the user to other devices belonging to the same user, such as start writing an email on a Macbook Pro and finish it on the iPad thanks to iCloud).

2. At our app’s interface controller level

We can implement the handleUserActivity method and use the userInfo input parameter to configure the UI appearance properly.

For example, if the app has been launched due to a Handoff action, this method will be called in each interface controller which is part of the initial interface. Each interface controller will check the userInfo information and decide the actions to be performed.

When creating our first Apple Watch applications, glances can be a little confusing but it’s a matter of practice. In the next post we will cover other of the WatchKit app’s main components: Notifications.