Thursday, August 31, 2017

How to become an iPhone developer in eight easy steps | Technology | The Guardian

How to become an iPhone developer in eight easy steps | Technology | The Guardian

How to become an iPhone developer in eight easy steps | Technology | The Guardian

iShoot

You've probably heard all about iShoot. Written by a programmer at Sun Microsystems in his spare time, this Worms-style artillery shooter blasted to the top of the App Store charts earlier this year and stayed there for weeks earning its creator enough money to pack in his day job and become a professional developer.

You may also have seen the news this week about nine-year-old programming prodigy Lim Ding Wen who has developed his own simple painting app for the iPhone. Doodle Kids is doing reasonable business, attracting 4,000 downloads in less than a fortnight and gaining its author international news coverage.

There's no question about it, iPhone has become the people's platform. While the PC maintains a healthy indie development scene, Apple's handset, with its low barriers to entry and seamless consumer purchasing system, is the real rags-to-riches machine. In practically a month, you can develop an application that will be available to a global market of enthusiastic downloaders.

Publishers? Distribution partners? Specialist development hardware? None of it is necessary. In the same way that cheap, accessible digital technology has brought film and music making to the masses, iPhone seems to have sliced through the painstaking game production pipeline. Everyone can be Will Wright now.

Or can they? How exactly do you go about creating an iPhone title?

I've spoken to iShoot coder Ethan Nicholas and two British studios involved in iPhone development - FluidPixel, responsible for fun Lemmings-style platformer, KamiCrazy and Connect2Media's Manchester team, currently finishing off the hugely promising, Go! Go! Rescue Squad. Here are their tips to any burgeoning app stars…
1. Buy a Mac
You'll need one with an Intel-based processor, running the Leopard version of MacOS X. It doesn't have to be a top of the range model, though. Ethan Nicholas wrote iShoot on a banged-up old MacBook with 1GB of memory, knackered Wi-Fi and an Ethernet port that needed to be wiggled around to get it to work. The machine did however, afford him the manoeuvreability he needed: "most of my available development time involved holding a baby on the couch so my laptop was better suited to the task."

Peter Scott, CTO at Connect2Media suggests Mac Minis, "they are more than powerful enough, small, easy on desk space when you already have PCs, three LCD monitors and a bunch of devices. They are also easy to move round, developers can take them home at the weekend if they want to continue to work."

2. Down the SDK (software development kit)

"Apple provides the free SDK for iPhone development from their Developer site," explains Stuart Varrall, Creative Director at Fluid Pixel. "This includes everything you need to get going, including the development environment Xcode, the iPhone Simulator for testing, performance analysers, interface builders and the full documentation reference library."

3. Learn Objective C

This is the primary programming language for iPhone development. "It's an extension of C to include object-orientated principles," says Varrall. "It has scripting elements to it, so is easier to pick up than some languages and anyone with programming experience should be able to transfer their skills."

"Here's a short history of Objective C," offers Scott, "It was born out of Smalltalk which was a very early Object Oriented Programming language developed in Xerox PARC (where Window/Mouse computing really begun) and as a consequence was heavily adopted by Apple since as early as the Lisa. Smalltalk is very similar to C."

"Objective C was actually created by Next Computing owned by a certain Steven Jobs. When Jobs returned to Apple, he sold Next to the company and so Objective C became the main development environment for the Apple Mac. It is liked because in similar ways to Java, it deals with many of the problematic parts of programming…. It's nice, simple, hides the complexities of the hardware away from the developer and deals with (on the whole) the major cause of programming issues in C and C++ which is memory leaks."

Go! Go! Rescue Squad: written in C++, but Objective C is fine for iPhone-only projects.

All well and good, but what's the best way to actually pick up the language? "This really depends on where you are starting from," explains Scott. "If you are proficient in C/C++ or Objective C then the learning curve is in getting to grips with the APIs of the iPhone - the best place to start is the iPhone developer site. If you need to learn the programming languages themselves then the best place to start is a beginners book, actually the For Dummies series is very good for this. Also look at one of the many free tutorials online - Googleing 'objective C tutorial' throws up many places to get these."

"The official Apple SDK has a wealth of detail along with examples of implementing various features," adds Varrall. "The Apple developer forum is rapidly growing to be the best place for specific questions or to get further clarification on something". He also mentions that iPhone supports Open GL ES which allows heavy optimisation when working in 3D. So if you're thinking beyond a scrolling shooter or Tetirs clone, you'll need to look into that as well. Also, many professional studios write their games in C++ rather than Objective C, especially if they're planning to port the code onto other platforms such as N-Gage of Xbox Live Arcade.

4. Start writing something!

Forget theory; forget mastering Objective C with your first attempt. Just set yourself a project and start working. "I knew nothing about Objective C, Cocoa, or OpenGL prior to starting iShoot. In fact I barely even knew C," admits Ethan Nicholas. "I hadn't really touched it in a decade. I was a Java programmer for twelve years and it was quite an adjustment moving from a nice safe language like Java to one where a single misplaced byte can instantly crash your program."

Nicholas' first aim – and this is more or less standard procedure in the development community when presented with a new platform – was to get something to appear on the screen. "The first thing I worked on was the ground. I wanted to create a destructible landscape with falling dirt. Since I had no idea how to load textures at that point, and had just grasped the basics of Objective C and OpenGL, my dirt "texture" was just solid white. So the first thing I got onscreen was just a white rectangle that represented the ground. My wife was fortunately tolerant enough to understand my excitement at getting anything, even just a simple white rectangle, on the screen.

"By day two, my featureless white rectangle had morphed into a properly textured landscape and most of the dirt-descruction code was working. By the end of the first week I had a tank on the screen firing shots randomly, blowing holes in the ground. When I finally got it on to an actual phone and not just the simulator, I found that it only ran at one frame per second, so I had some considerable optimisation work ahead of me."

If you can't face starting out on an original project, however, Varrall suggests a couple of modification tasks. "The SDK actually comes with a whole host of sample projects that cover most aspects of development. So the best place to start would be to take one of those and reverse engineer it and work out how it has been constructed. You can then build on these by adding new features and create your very own game very quickly."

5. Sign-up as an official developer
If you plan on releasing your masterpiece at any point, you'll need to sign up with the iPhone Developer Program. The Standard cost is $99, and it involves agreeing to Apple's terms and conditions, and signing and returning the contract. Even if you're nowhere near completing the project, you'll need to sign up in order to test your code on an actual iPhone rather than an onscreen emulator. Once you're on the Developer Program you're sent a certficate, which allows you to pair up with an iPhone device.

6. Prepare for a few weeks of work…
Depending on the time available, and your level of programming knowledge, developing an iPhone game can mean as little as a couple of months' work. "Including learning Objective C, Cocoa, and OpenGL, I spent exactly six weeks on iShoot," says Nicholas. "The hardest part was adjusting to an unsafe language... after twelve years working in Java, it's very difficult to get back into the proper mindset for debugging crashes. I had one memory corruption issue where it turned out that literally only a single byte was being corrupted, and it didn't cause the program to crash until several minutes after the corruption occurred. It took me three days to find that one…"

KamiCrazy: six weeks to develop with a team of five...

The professional studios I spoke to provided similar timeframes, though they involved teams rather than lone coders. "KamiCrazy took three months to develop part-time, so could be done in a month full-time," reckons Varrall, who used three programmers, one artist and a producer. "The programming was focussed on the most part into making the robust engine that drives the game and included the level editor, allowing the levels to implemented with ease. This means that this technology can be re-used and future titles could be turned around in less time. The art took three weeks in total to produce."

7. Submit your app to Apple
Okay, this is the big one. "Finished games have to be submitted to the App Store using the same interface as music producers use," explains Varrall. "It's a straightforward process of zipping up the file, uploading it with a description, a large and small icon, and screenshots. If everything is alright then it usually takes Apple a week to approve the content and it finds itself in the store. If there is a problem, such as obvious bugs or Lite apps that are mentioned as demos or aren't fully featured, then this can take longer to review and ultimately reject. In this instance you can fix the issue and resubmit as many times as you like."

"Any iPhone developer will tell you that the provisioning and code signing is a pain, but once I had that sorted out the submission process was trivial," agrees Nicholas. "Fill in the fields, wait a few days, eagerly anticipate your first sales report... and then watch everybody completely ignore your app as you sell fewer than 20 copies a day. iShoot wasn't exactly a resounding success in the beginning…"

8. Adapt, market and survive!
The work doesn't finish once you've made it onto App Store. As it's unlikely you'll have your own in-house QA department, some bugs and design issues may only surface when hundreds of gamers get their hands on the code. Consequently, it may be necessary to submit several alterations.

And as Nicholas mentioned, don't expect an immediate response to the release – App Store is an open market, featuring around 20,000 applications and 2,000 games. To get noticed, you'll need to build a buzz around the game: engage with the development and gaming communities, start a blog about the programming process, produce screenshots and mail out press releases to iPhone news sites like Pocket Gamer, Touch Arcade and FingerGaming. And, of course, utilise social networking sites like Twitter, Facebook and Bebo.

The iShoot profit graph: releasing the Lite version had a reasonably dramatic effect on sales of the original...

Or just produce a free demo version. iShoot was widely ignored for several weeks before Nicholas decided to produce a cut-down 'Lite' version which he made available for free. "it quickly became the #1 free application, and iShoot sales followed suit. Here is an actual graph of my daily sales from iShoot's launch through to when it became number one. To put things in perspective, you see the biggest spike before iShoot Lite was released? That tiny little bump? That was Christmas Day, when I made over $500 in a single day. I was quite excited about that at the time."

While at the top of the Paid Apps chart, iShoot was getting over 10,000 downloads a day, at $2.99 each. Take out Apple's standard 30% commission and Nicholas was pulling in $21,000 a day. He quit his job at Sun and is now working on a new game ("My next project involves airborne sheep, but I'm afraid that's all I can share at the moment"). You could be next….

Useful links
Stuart Varrall of FluidPixel kindly provided some helpful links for wannabe App developers…

The KamiCrazy development blog
The official iPhone development site
iDevGames - a developers site
Iphonedevsdk - a community development forum
Mobile Orchard - information and useful blog posts
148apps - an app review site



Sent from my iPhone

Wednesday, August 9, 2017

๐Ÿค ๐Ÿค“๐Ÿค—Just for laughs

♥️ Some Hospitals in Singapore may have names changed to cater for Kiasu Citizens.
Do you know why New Changi Hospital 《NCH》 changed its name to Changi General Hospital 《CGH》?
Because NCH stands for▪'Never Come Home'.
That's why business was very bad before it changed its name.
Now CGH stands for     
๐Ÿ”ธ'Can Go Home'.         
So business is picking up.
Business in Singapore General Hospital 《SGH》is still going strong because SGH stands for ๐Ÿ”น 'Sure Go Home'!
Now National University Hospital (NUH) is also considering a name change.
It stands for ▫'No Use Hospital'!
What about Tan Tock Seng Hospital (TTSH)?
Not too good a name, no wonder so many problems.
It stands for ๐Ÿ”˜'Tiam Tiam Si Hospital' (Always Die or Die Quietly).
So, be careful when choosing which hospital to go if anyone is unwell...
๐Ÿค’๐Ÿคง๐Ÿ˜ท


Sent from my iPhone

Thursday, August 3, 2017

P2 PAL Activity 6: Neighbourhood “Hike” 3-Aug-2017


SIO:


PAL

Pupils go on a neighbourhood walk to:
·       Develop navigation and map-reading skills.
·       Learn more about facilities for the community: playgrounds, elderly corners, recycling bins, etc. in their neighbourhood, to build rootedness and ownership.
·       To learn safety: traffic safety and fire safety
To observe and know about some plants and animals living among us.

SEL

·       Self-management
·       Teamwork

OTHERS

·       Process skills – observing, comparing
·       Social Studies – Neighbourhood
·       Spatial awareness

Location

Neighbourhood around school

Materials
Handouts 6A Map of the Neighbouhood with route (one for each teacher, 6 for each team)
Handout 6B Photo Hunt (one for each teacher, 6 for each team)

Preparation                          
Conduct a reconnaissance of the suggested route before the lesson. Find all the photo-hunt places and note the activity there
Photocopy Handouts 6A & 6B laminate them to reuse them.
Suggested numbers:
Handout 6A (7 sets per class)
Handout 6B (7 sets per class)

Safety  
Weather: only continue with this lesson if there is no Lightning alert
Crossing of the roads
Be watchful that no pupil/s stray from the group
Falling at playground?
Be watchful of vehicles when walking around the car park


Overview 
10min     Introduction
65min     Neighbourhood hike
15min     Debrief

_____








How to Conduct

Introduction and Go to School Gate (10min)

·       Explain to the class that you will lead them on a walk around the neighbourhood to learn new things about the neighbourhood and practice what they had learnt from all the lessons before.
·       Conduct the Hike Briefing:
  • Be on your best behaviour: you are representing your school.
  • Anyone not behaving and listening to instructions will not be allowed to go or brought back.
  • Be considerate. Stand on one side of the path when we stop, to let others pass. Be quiet and respect the peace of the neighbourhood.


·       Conduct the Safety Briefing:

  • Stay and walk together. No one is to walk off by themselves.
  • Be very careful when near the road, car park or crossing the road.
  • When walking along the path, be careful of bicycles/scooters coming by.

·       Explain the Tasks and the Handouts:
o   We will be walking along a route. Teams will use their map on Handout 6A to keep track of where they are.
o   Along the way, teams will go on a Hunt for the Photos found in Handout 6C. When you spot something on the Handout, tell me and the class!
o   We are also going to spot interesting plants and animals on the way.  When you see an animal, be quiet so as not to scare it.

·       Ask teams to drink some water and line up. Distribute the Handouts to each team. Allow pupils to go to the toilet, on the way to the school gate.

Outdoor Time - Neighbourhood Hike (65min)

1.     Lead the ‘neighbourhood hike’ using the route, which starts at the school gate, around the school.
2.     At each landmark, ask some questions to reinforce learning points:

Landmark 1 The Traffic Light (Road safety, attentiveness)
  • Why should we use the traffic crossing when crossing? (Because it is safer; people run across the road have been knocked down by cars)
  • What is the best way to cross the road? (Always cross with an adult, press the button once and wait by the side. Do not stand too near the road. Put up your hands when crossing (you can discuss why in class)

Along the way: notice the trees alongside the road – giving us shade and keeping the neighbourhood cooler.








Landmark 2 Family Clinic and the Bomb shelter  (not coming to school, seeing a doctor when we are ill /concept of bomb shelter)
  • Can you see the yellow triangle sign on top of the door? It says shelter. What kind of shelter is it? A bomb shelter for. This is a special place for people to hide in in times of emergencies and bombings. The walls are extra thick to protect against bombing. During peace time, bomb shelters have different uses. Here it is a family clinic.
  • When do we visit a family clinic? (when we are ill. When you are ill, better to see a doctor, rest and get well. Do not come to school where you cannot recover and you may spread the germs to others)

Landmark 3 Fire hydrant (Safety with fire)
  • What are these for? Fire in the neighbourhood – it’s a water source for firemen to put out fires.
  • We should never play with fire on our homes – do not light candles, the stove or play with matches, especially when adults are not at home.

Map reading: Check to see if they know where they are on the map

Landmark 4 Playground (Consideration/taking turns)
  • Have you been here? Which is your favourite part of the playground? (Answer varies.)
  • If the playground is crowded, what should you do? (Take turns, wait for your turn, do not hog the swing, etc.)

Landmark 5 Elderly Fitness Corner (Obedience of signs)
  • What is this Corner? Elderly Fitness Corner.
  • Should children/students play here? no – it says on the sign – “discourage children from using it”
  • Why? (not built for children – children might get hurt, give elderly a chance

Landmark 6 Mobile Library (convenience of a mobile library/benefits of reading)
  • What can you do here? (borrow books to read) reading is important and we can learn so much from books. We also improve our language, reading and writing skills.
  • How does having a mobile library help the residents? (don’t need to go all the way to the library to borrow books)


Landmark 7 Starlight residents’ Corner (for residents to meet and build up the community spirit)
  • What is the Resident’s Corner for? (for residents to meet and do things together. This helps to build friendships between people in the neighbourhood)


Landmark 8 Multi purpose  Hall (for residents to have gatherings)
  • Explain that people can organise events at this multipurpose hall like weddings and parties.


Landmark 9 Tall Pulai Trees (activity – how tall is one of these trees in terms of storeys of the block; Benefits of trees)
  • These are Pulai trees that can grow very tall. How tall is one of these trees? Count the number of storeys of the block (10-12 storeys)
  • Benefits of trees: how do trees help us? Give shade and cool our environment. They also give food and shelter to

Map reading: Check to see if they know where they are on the map

Landmark 10 Recycling Bins (Encourage recycling/what not to put inside)
  • What items are recyclable (see the pictures on the bins – paper, glass bottles, plastic bottles)
  • What do you not put inside? (drinks and food, food wrappers, batteries, etc.)
  • Do you recycle?

Landmark 11 Community Garden (Neighbours having fun gardening together/ building friendship and community spirit/volunteers/plants)
  • Ask children to read the sign. Explain that this is a Community garden where volunteers come and do gardening together. this is one way neighbours become even better friends and have fun doing things together.
  • Tell your family about it – maybe you and family members can come and do some gardening in the weekends or free time!
  • Optional: point out some interesting plants

Map reading: Check to see if they know where they are on the map

Landmark 12  Post Box  (Postage system)
  • This is a post box. Letus pretend you have a letter to send to a friend in Indonesia or Australia. Which slot do you put your letter in? Other countries. Yes, they separate letters in Singapore and those going overseas. 
  • Optional: advanced: when will the postman next come to collect letters and bring them to the post office? 5pm (Mon-Thurs)

Lead the pupils back to the traffic lights. Cross the road and return to class.



Debrief (15min)
Ask pupils if they had fun? (Yes.) Praise the teams for their sharp eyes and for spotting all 11 landmarks.
Visualiser Recap the route and landmarks using the map (Handout 6A).

What did they learn about? Ask a few pupils to share about some of these topics (recap and their own ideas)
o   Road safety: be alert and attentive wen crossing or near roads
o   Bomb shelters
o   Fire hydranth: never play with fire
o   Playgrounds taking turns when having fun
o   Serving the people and bringing people together: exercise for the elderly @ elderly corners, mobile library, residents’ corner, multipurpose halls, community garden
o   Nature in the neighbourhood: trees, animals
o   Post box
o   Anything else was interesting?

  • What animals did they see during the walk? (Birds like Mynah, Sparrow; butterflies, bees, Changeable lizard etc.)
  • What interesting plants did they see (at the community garden – dragon fruit plant, coconut palms, etc?


o   Was the class considerate? Was the class noisy or quiet?
o   Which team showed good teamwork? Taking turns to hold the map etc.
- Where can you do better in care, consideration and teamwork?

Conclusions
·      Recognizing landmarks is an important way of knowing where you are on a map. If we are lost, look for landmarks to help you find your way
·       Everyone in the neighbourhood should help keep it clean and healthy by not littering
·       Be safe around roads.  Always be alert and attentive.
·       There are many interesting animals and plants in your neighbourhood.
·       Never play with fire.