Swift

Apple Swift logo
Q: What is Swift?

A: Swift is Apple’s new programming language for (iOS)iPhone and iPad apps and (OS X) Mac. It works side-by-side with Objective C but it is a new language in its own right.

Q: Was there a need for a new language?

A: C has been around for about 40 or more years and of course things develop very fast in the world of technology. There’s an opportunity now to develop a new language and I believe that Apple have done this with Swift. It’s very versatile, it does a lot more things than you can do with other languages and it’s a joy to work with.

Q: Is Swift better than what came before?

A: I believe I have just answered that question.

Q: What did you think when you heard there was going to be a new programming language?

A: At first I was a bit concerned, because I didn’t know how it might turn out – but now having worked with it I think it’s really good. Easy to work with, very versatile and I think it’s going to be something that a lot of people will take up in the industry.

Q: How long have you worked with it?

A: I’ve worked with it now for a few weeks. In that time I’ve almost mastered it. I’ve developed a complete project with it, so clearly it’s an easy language for someone who has a grounding in Objective C to move to.

Q: What are the things you like best so far?

A: I like the way that classes, enumerations and structs are all very similar, but have their own distinctive traits. For example, a class is the only one that you can subclass and it can have methods and properties. A struct can also have methods and properties.

It’s inherently designed to be safe. Variables are always initialized before use, arrays and integers are checked for overflow, and memory is managed automatically.

Also, it’s fast to compile. It uses the high-performance LLVM compiler.

Q: What is a struct?

A: A struct, much like a class, is a general-purpose, flexible construct that becomes the building block of your program’s code. You define properties and methods to add functionality to your classes and structures by using exactly the same syntax as for constants, variables, and functions.

Q: What is the Interactive Playground?

A: The Interactive Playground is a convenient way to test your code without actually running it in an app. It’s a feature of X Code – it’s like a text screen into which you enter code, and as you enter it you get an immediate result. For example if you say let x = 1+2 then you’ll get an answer of 3 straight away – without having to run the app.

Q: Does Swift allow you to do more interesting and exciting things?

A: Yes, definitely. I think the possibilities are endless with Swift. From what I know of it already it’s very exciting – hard to explain in a few words exactly what it can do but maybe I can expand on that later.

Q: Is the support documentation up to date?

A: I believe so.

Q: Can anybody learn Swift?

A: If you have a solid grounding in Objective C it’s going to be easier than if you’re coming to it from scratch. What I will say is that it’s a worthwhile investment of your time. Swift is not just a flash in the pan. In my opinion it’s a genuine improvement on what came before and opens up a lot of opportunities for developers.

What makes a great app?

Navtech Software are UK app developers, programming for the Psion in the 1990s and now specialising in iOS iPhone, iPad and Android.

Making an app can be a complex process. It will probably involve a number of different people (unless you possess all the necessary skills yourself – coding, design, marketing).

So throughout what may be a long and involved process, how can you ensure that your idea doesn’t lose its sparkle? How do you make a truly great app?

Great app design begins with clear definitions

Nothing will happen unless you begin with a clear concept.

Can you encapsulate your idea into a compact ‘elevator pitch’? What does your app do? Who is it for? Does it solve a problem?

Do some research – is it the only app of its kind in existence?

If not, what makes it special?

The first realisation of an idea is not necessarily the most successful one. Facebook wasn’t the first social networking site. Google wasn’t the first internet search engine.

In fact, there are very few completely unique apps entering the stores today. However, there are many successful apps which take an existing concept to a whole new level.

Clear is often cited as an example of a fairly common concept (the ‘to do’ list) elevated to a sublime level.

It looks beautiful, it’s easy to use, and people are fond of it.

The whole concept has been re-engineered to make the best of the opportunities the platform can offer.

An app like this does many things right.

a) it’s something people need
b) it’s so easy and convenient that it becomes part of the user’s daily landscape
c) it’s loved to the extent that users spread good word of mouth

Emotional design can turn users into evangelists who share their positive experience with others. People love sharing interesting stories; you just have to give them one.
Smashing Magazine

It must either provide a unique solution, a niche solution, or a better solution than those already out there. A better solution might be easier to use, it might afford more functionality – or it might just be more fun!

Social Networking

Most apps today include some element of social networking, so your users can connect with friends or people of a similar mind – sharing, or challenging each other. If an app becomes a community activity, it has the potential to soar.

Coding

Of course the meat and bones of the entire process is the coding. Coding is what makes your app work. And work well. Your app should be utterly trustworthy (both in terms of respecting user’s privacy and in terms of functionality). It should be a delight to use. Simple on the surface doesn’t mean simple underneath. In fact, quite the contrary.

Poorly coded apps – if they even pass Apple’s stringent approval process – result in user frustration, bad publicity and a drop in ratings – not to mention additional cost in fixing or updating code.

Marketing should be part of your strategy from Day 1

It’s very important to build marketing into your plans from the beginning. Aim for your marketing efforts to climax on launch day. Ideally you should spend months building up a base of interested fans who will be ready to download your app the moment it arrives in the stores.

Make use of social networking, setting up Twitter and Facebook accounts for your app. Post progress reports and consider ways to offer special treats to fans who are involved from the beginning. Prepare a website for your app. Prepare a video using screenshots, real footage and even animation! A good video paints a thousand words – communicating across language barriers, simplifying what sounds complex and making a concept real.

App Charts

App Store
http://www.apple.com/itunes/charts/paid-apps/
http://www.apple.com/itunes/charts/free-apps/

Google Play
https://play.google.com/store/apps/collection/topselling_paid
https://play.google.com/store/apps/collection/topselling_free


Further reading:

iOS Human Interface Guidelines
http://developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html

Android Developer Guidelines
http://developer.android.com/design/index.html


http://uxdesign.smashingmagazine.com/2012/07/18/the-personality-layer/

http://mobile.smashingmagazine.com/2012/11/07/succeed-with-your-app/

http://www.mauronewmedia.com/blog/why-angry-birds-is-so-successful-a-cognitive-teardown-of-the-user-experience/
Why Angry Birds is so successful and popular: a cognitive teardown of the user experience by Charles L. Mauro CHFP, consultant in human factors engineering (aka usability engineering)

http://pandodaily.com/2013/07/30/hooking-users-one-snapchat-at-a-time/

What is a wireframe?

What is a wireframe?

A wireframe is simply a diagram of your app. It doesn’t have to be beautiful. It does have to be comprehensive.

It is the link between what’s in your head, and what will eventually appear in physical form on the App Store or Google Play.

It needs to show everything that happens in the app, from splash screen to closing. How does one screen lead into the next? What content, information and navigational elements are included on each screen? Which elements have priority? What are the user’s escape routes out of each function or back to the home page?
What is a wireframe for?

It can help to refine and even enhance the original idea. It may uncover kinks/problems/omissions in the idea or its structure. It is invaluable in helping your developer to understand the scope of the app you are proposing. It defines the scope and objectives of the project, keeping all parties on track during development.

Wireframes may go through several revisions. At first they should be basic, not concerned with aesthetics or detail. The underlying structure needs to be right first, as all subsequent details will depend upon it.

Later levels of wireframing should involve your designer, and address the user interface and the look/feel of the app, artwork, colours, typography etc.

A good wireframe can save you much blood, sweat and tears during the development process. It can address pitfalls before you even start. It can be a map to guide you and your contractors through the process. It provides a common language and helps to avoid ambiguities, misunderstandings and scope creep.

Now developing in Apple's Swift language