Showing posts with label Ultimate. Show all posts
Showing posts with label Ultimate. Show all posts

Wednesday, March 18, 2015

Ultimate Guide To Building & Publishing Your First iPhone App

Are you considering making your own app? This is what you need to know. Learn about the app ecosystem, programming languages, toolsets, and time and effort involved. Let’s not tell you what you should know, but rather explain how you can actually get started today to get an app published in the App Store.


apple app store


For your quick reference, here are the shortcuts:


1. Building Blocks Of An App: The Basics


An app is just a piece of computer software running on a smartphone. It’s written by a programmer, and put together with graphic assets created by a designer.


Apps for iPhone are made with a Mac application called Xcode, and programmed in either Swift or Objective-C. Many apps are connected to the internet, which means that they have a back-end that allows storage of data in the cloud or functionality that interconnects users.


Xcode is the application you can use for making native iPhone apps, and it’s only available for Mac OS X. It includes Interface Builder, a tool to visually create the graphical foundation of your app. It’s a scaffolding tool: you can’t make a functional app with it, but you can lay down the groundwork for the GUIs of your app.



Xcode has many useful features, such as Auto Layout for making your interface work on multiple screen resolutions and an iPhone Simulator for testing your app without an actual iPhone.


In order to publish apps in the App Store you need a developer account from Apple. It’s available for $ 99 USD a year, and needs to be renewed each year. Apple has a comprehensive online toolset available for managing new and published apps, called iTunes Connect, as well as an extensive set of documentation.


Additionally, iTunes Connect now features a beta distribution tool called TestFlight. It can be used to distribute your app to beta testers.


2. The App-Making Process


Any app development process roughly follows these steps:


  1. Design. Make a mockup of your app and layout all the components on the screen.

  2. Develop. This step involves coding the app, tying up interfaces with if-this-then-that actions.

  3. Test. Send the app out to beta testers and gather feedback on its performance. Then, solve any errors that arise.

  4. Publish. Get your app past the review process and push it to production in the App Store.

Modern process management often work with iterations on a micro and macro level.


When you’re making a new feature, you always design it first, then code it, then test it, and then push it live. Whether it’s a small component or an entire new part of the app, follow this process.


3. On Swift and Objective-C


iPhone apps are all written in Swift or Objective-C. Swift is the new programming language invented by Apple, announced on June 2, 2014, and subsequently released as a stable 1.0 version on September 9, 2014. It’s a fairly new language and apps entirely written in Swift are just now hitting the App Store.



Swift is gaining rapidly in popularity and its features are highly acclaimed by both beginner and advanced programmers. The great thing about Swift is that it’s interchangeable with Objective-C. This helps the adoption of Swift by programmers, because they don’t have to rewrite their entire codebase to be compatible with the new language.


People that already have an intermediate-level proficiency in any programming language will need less time to pick up Objective-C or Swift. Especially those that have worked with languages that are similar to Swift, such as Java, PHP or Ruby, should have no problem learning Swift.


But which is better, Swift or Objective-C?


Objective-C is a little bit harder to tackle because it uses a unique syntax. For beginners, Swift is clearly the better option. It’s easier compared to Objective-C and removes overhead from the development process, making the barrier-to-entry for beginners considerably lower.


Despite that, Objective-C is still the standard in many firms around the globe, so legacy code will be Objective-C for the coming years. As an employed iOS developer, you’ll see more Objective-C than Swift.


4. Middleware: Build Once, Run Multiple


Middleware (or cross-platform) like Cordova or PhoneGap, is a popular choice for app developers, because it enables them to write code once and deploy it to both Android and iOS.


Apps for Android are written in Java and they’re not compatible with iOS apps. If you want to make an app for both platforms, but do not want to program the same app twice, middleware is a time-saving option.


Many of these cross-platform tools are based on web technology, such as HTML5, CSS and JavaScript.


PhoneGap is the most widely adopted: it’s being used by 400.000 app developers. PhoneGap has its own build tools and technically it exports an app that can be run and built inside Xcode, making it a "hybrid app" — native components combined with HTML5.



PhoneGap now features PhoneGap Build, which replaces the Xcode compiler with a cloud-based solution. PhoneGap is free and released under the open-source Apache Public License v2.


Alternatives to PhoneGap include:


PhoneGap outperforms these alternatives by supported devices (iOS, Android, Windows Phone, BlackBerry OS, Ubuntu and Firefox OS) and supported hardware (accelerometer, camera, etc.).


Downsides To Middleware


Using middleware such as PhoneGap has two major downsides.


Since such tools are all based on web technology, they’re unable to make use of hardware-accelerated native components. Animations, transitions and high-resolution graphics don’t work as well as in a native app, which makes it impossible to use for games or visually intense apps.


Also, using middleware requires good knowledge of compilers and build tools, which makes it an inconvenient option for beginner developers.


5. Design: How Your App Is Used


Not all that is apps is programming. Graphic design is big in the app industry; it’s a requirement for any app that wants to be taken seriously. Are you considering programming your own apps? If your budget allows it, hire a graphic designer. There’s plenty of those around on outsourcing sites like Elance or oDesk.


That being said, you don’t need a graphic designer if you’re just starting out. On iOS, you can work with the many pre-fab components that Apple is using in their own apps and throughout the operating system’s UI. The standard iPhone user interface components don’t look exceptional, but they’re not bad either. It’s a great way to get started without spending too much time on the graphical look of your app.


Tools and Resources


Human Interface Guidelines gives you a good overview of available components and how to use them.


Icons: Consider using an icon kit such as Glyphish (commercial). They’ve put together hundreds of icons, optimized for iPhone apps, including social media icons, play/stop buttons, and symbols for app-related tasks such as new, edit, and send.


Mockups: Another tool you definitely must use is Balsamiq Mockups (free trial, commercial). It’s a point-and-click editor for making mockups of your apps. A mockup is a rough sketch and it shows and explains how your app works and what it does. Never just start programming: take a step back and rethink your apps UI and layout by making a mockup.


Did you make a sketched mockup, but can’t get a feel for how the app will actually look? Work with the design PSDs from Teehan+Lax (free). They’ve extracted all the GUI components from iOS and made them available as vector graphics. Perfect for making a graphical mockup!


6. How To Enable An App For The Internet


Is your app connected to the internet? Creating a custom back-end with server-side languages like NodeJS, Ruby or PHP can take up lots of time, money and effort. It’s easier to use a Platform-as-a-Service tool, such as Parse.


Parse is a cloud-based solution for storing data offline and online in your app. Say, you’re making a social app with a stream of pictures and status updates. You could use Parse to store that data in the cloud and use their SDK to get it from and to your users.



Using a tool such as Parse completely removes the need to build a custom back-end. Parse’s basic usage tier is free, subsequent tiers start at USD100/month.


Alternatives to Parse are Appcelerator (middleware + PaaS, commercial) and App42 (PaaS + analytics, free tier).


7. Going From Beta To Live


Before an app gets published in the App Store, you need to upload it with iTunes Connect. You enter your app’s basic information like a description, app categories and what app icon to use.


Your app then enters the review process, a requirement from Apple. A reviewer from Apple checks if your app adheres to the Review Guidelines and whether it has bugs. It’s a quality check to ensure only good apps enter the App Store, and from the point of uploading it takes about 2 weeks to get your app reviewed.


More on Hongkiat:


10 FAQs to Creating Your First App


Of course at this point you might still have some burning questions related to creating your very first iOS apps. We’re going to take a look at the top 10 questions new app developers are concerned about.


1. How much does an app cost?


The cost of development of an app can really differ from one contracting company to the other. Outsourcing freelancers can create a simple app for around USD3000. Bigger companies can ask from USD25,000 to USD100,000 for a complex application, including graphic design and back-end programming. Companies like Tinder, Pinterest, Facebook, etc. can spend hundreds of thousands to millions on developing and marketing one app. Just like anywhere else: you get what you pay for.


2. I’m stuck with a programming bug. How do I get help?


A lot of beginner programming questions have been asked already on sites such as StackOverflow. Search for the error message or bug you found, and you’ll most likely find a solution. When asking a question yourself, always search first, and make sure you explain your problem thoroughly and tell the steps you’ve already taken to solve it. Quora is a good medium for asking non-technical questions, such as about business and UX/UI topics.


3. I have a brilliant idea for an app. Where do I start?


If you’re serious about creating a business based on an app, don’t start with programming immediately. First, validate your business idea by pitching to your target audience.


Get in touch with potential customers and survey them, asking for feedback.


Keep in mind that most successful apps solve an immediate problem, in such a way that customers want to pay for it. When you’ve validated your idea, and created a relationship with your first customers, proceed with design and development of the actual app.


4. Do I need an iPhone to create apps?


No, but it’s recommended. Xcode has an iPhone Simulator, that runs your apps just like a physical iPhone would. Holding a real iPhone with your app in your hands is different from seeing it on your computer’s monitor, so testing your app on an actual device is recommended.


Keep in mind that Xcode only runs on Mac OS X.


5. I’m not good at maths, do I need it for programming?


Yes, and no. It’s an urban myth that to be able to code you must be good at maths. A lot of programming principles find their roots in mathematics, but they’re not required for a basic understanding of how to make apps. When you dive deeper and become more proficient at programming, you’ll find that you have picked up some maths skills along the way.


6. I work for a company. Do I pursue my app idea with the company, or in my own time?


It depends on the company and your position. Are you an engineer and is your company’s core business online, digital or closely related to apps? Then you might want to build a prototype and convince your supervisor or employer to pursue the idea.


If you think your employer won’t see the value, you can pursue the app idea in your own time. Be mindful of your contract with your employer. Inventions made during your time with the company could be regarded as the company’s intellectual property, not yours.


7. My app idea already exists in the App Store. What do I do now?


The fact that it exists doesn’t mean it’s a good app. You can always create a competing app and make it better than what’s already out there.


Likewise, the fact that an app doesn’t exist yet doesn’t make it a good idea to create it. It could well be that an app has been published multiple times, but was pulled from the App Store because there was no need for it.


Always validate your app idea by the problem it is solving and the value it has for its users.


8. Why is the iPhone sometimes called iOS?


There’s a slight difference: iPhone is the name for the actual hardware smartphone and iOS stands for “i Operating System”. Going back into Apple’s history, the iMac computer was the first product to have the prefix “i”. Later on, they’ve followed this style and created more products: iTunes, iPod, iPad and iPhone. It’s only natural to call the operating system that runs on the iPhone, iOS.


9. How do you effectively market an iPhone app?


Entire books have been written about this question! It’s a hard one, but not impossible to answer. All successful apps solve one problem, in such a way that people want to pay for it.


You can either come up with a problem and find people that need your solution, or find an audience and survey them for problems you could make a solution for. Keep in touch with this customer group and give them a way to tell others about your product. Referrals and word-of-mouth is an effective and cheap marketing machine.


10. What’s the worst way to learn programming?


Giving up is one of the worst ways to learn programming. Learning a new skill has ups and downs, and you can only keep going by celebrating the ups and seeing through the downs. Giving up is not part of the equation.


Also, find out what your learning style is. There’s no point in watching videos, when writing code and trial-and-error suits you better.


Finally, don’t randomly pick a book on programming from the library but find a proven learning method or path. When learning Spanish, you don’t start with reading a dictionary, right?


Learning Resources To Get Started


If you still want to go through with creating your first iOS app, this section is where you find all your learning resources to get started.


App development involves a lot of components, and when you’re new it can be quite a challenge to get acquainted with all the tools. Fear not! You can make your first app in a day at max, with no prior programming experience. The only thing you need is a good resource that shows you the ropes and focuses on one toolset at once. There’s plenty of beginner tutorials on the internet, as well as premium courses.


The Learning Process: In Brief


What’s your learning style? Consider that before you pick a resource.


When you’ve built your first app, it’s a great plan to briefly dive into a number of components after one another. Learn about:


  1. Using navigation controllers, such as tab bars and hamburger menu’s

  2. Using hardware, such as the camera and accelerometer

  3. Using layouts, such as the table view controller and the page view controller

  4. Working with animations and view transitions

  5. The app lifecycle

  6. Compilers and build tools

Most of these topics require a couple of days (24 to 32 hours) of tinkering, trial and error, and looking up resources.


Once you got the basics figured out, get straight into working with internet sources and cloud-based solutions such as Parse. All apps are connected to the Internet one way or another.


Regardless, those who are used to learning new things often can outline their own learning plan and do not necessarily need to follow a program such as a course or a book.


Wrap Up


Wouldn’t it be great to have your own app in the App Store? You now have a basic outline of the tools involved in making apps, and what it takes to learn how to make your own apps. Get started with Swift by reading a book or following a tutorial, craft a great looking interface with Balsamiq, get yourself a developer account and publish that app!


Full Reference List:


Editor’s note: This is written by Reinder de Vries for Hongkiat.com. Reinder is an entrepreneur and app developer, who believes that there are not enough app makers in the world. He has developed 50+ apps and his code is used by hundreds of thousands of users all over the globe. When he’s not coding, he teaches aspiring developers how to make their own apps at LearnAppMaking.com.


Now Read:
How to Integrate jQuery Mobile in Phonegap/Cordova












Ultimate Guide To Building & Publishing Your First iPhone App

Tuesday, March 17, 2015

Ultimate Guide To Building & Publishing Your First iPhone App

Are you considering making your own app? This is what you need to know. Learn about the app ecosystem, programming languages, toolsets, and time and effort involved. Let’s not tell you what you should know, but rather explain how you can actually get started today to get an app published in the App Store.


apple app store


For your quick reference, here are the shortcuts:


1. Building Blocks Of An App: The Basics


An app is just a piece of computer software running on a smartphone. It’s written by a programmer, and put together with graphic assets created by a designer.


Apps for iPhone are made with a Mac application called Xcode, and programmed in either Swift or Objective-C. Many apps are connected to the internet, which means that they have a back-end that allows storage of data in the cloud or functionality that interconnects users.


Xcode is the application you can use for making native iPhone apps, and it’s only available for Mac OS X. It includes Interface Builder, a tool to visually create the graphical foundation of your app. It’s a scaffolding tool: you can’t make a functional app with it, but you can lay down the groundwork for the GUIs of your app.



Xcode has many useful features, such as Auto Layout for making your interface work on multiple screen resolutions and an iPhone Simulator for testing your app without an actual iPhone.


In order to publish apps in the App Store you need a developer account from Apple. It’s available for $ 99 USD a year, and needs to be renewed each year. Apple has a comprehensive online toolset available for managing new and published apps, called iTunes Connect, as well as an extensive set of documentation.


Additionally, iTunes Connect now features a beta distribution tool called TestFlight. It can be used to distribute your app to beta testers.


2. The App-Making Process


Any app development process roughly follows these steps:


  1. Design. Make a mockup of your app and layout all the components on the screen.

  2. Develop. This step involves coding the app, tying up interfaces with if-this-then-that actions.

  3. Test. Send the app out to beta testers and gather feedback on its performance. Then, solve any errors that arise.

  4. Publish. Get your app past the review process and push it to production in the App Store.

Modern process management often work with iterations on a micro and macro level.


When you’re making a new feature, you always design it first, then code it, then test it, and then push it live. Whether it’s a small component or an entire new part of the app, follow this process.


3. On Swift and Objective-C


iPhone apps are all written in Swift or Objective-C. Swift is the new programming language invented by Apple, announced on June 2, 2014, and subsequently released as a stable 1.0 version on September 9, 2014. It’s a fairly new language and apps entirely written in Swift are just now hitting the App Store.



Swift is gaining rapidly in popularity and its features are highly acclaimed by both beginner and advanced programmers. The great thing about Swift is that it’s interchangeable with Objective-C. This helps the adoption of Swift by programmers, because they don’t have to rewrite their entire codebase to be compatible with the new language.


People that already have an intermediate-level proficiency in any programming language will need less time to pick up Objective-C or Swift. Especially those that have worked with languages that are similar to Swift, such as Java, PHP or Ruby, should have no problem learning Swift.


But which is better, Swift or Objective-C?


Objective-C is a little bit harder to tackle because it uses a unique syntax. For beginners, Swift is clearly the better option. It’s easier compared to Objective-C and removes overhead from the development process, making the barrier-to-entry for beginners considerably lower.


Despite that, Objective-C is still the standard in many firms around the globe, so legacy code will be Objective-C for the coming years. As an employed iOS developer, you’ll see more Objective-C than Swift.


4. Middleware: Build Once, Run Multiple


Middleware (or cross-platform) like Cordova or PhoneGap, is a popular choice for app developers, because it enables them to write code once and deploy it to both Android and iOS.


Apps for Android are written in Java and they’re not compatible with iOS apps. If you want to make an app for both platforms, but do not want to program the same app twice, middleware is a time-saving option.


Many of these cross-platform tools are based on web technology, such as HTML5, CSS and JavaScript.


PhoneGap is the most widely adopted: it’s being used by 400.000 app developers. PhoneGap has its own build tools and technically it exports an app that can be run and built inside Xcode, making it a "hybrid app" — native components combined with HTML5.



PhoneGap now features PhoneGap Build, which replaces the Xcode compiler with a cloud-based solution. PhoneGap is free and released under the open-source Apache Public License v2.


Alternatives to PhoneGap include:


PhoneGap outperforms these alternatives by supported devices (iOS, Android, Windows Phone, BlackBerry OS, Ubuntu and Firefox OS) and supported hardware (accelerometer, camera, etc.).


Downsides To Middleware


Using middleware such as PhoneGap has two major downsides.


Since such tools are all based on web technology, they’re unable to make use of hardware-accelerated native components. Animations, transitions and high-resolution graphics don’t work as well as in a native app, which makes it impossible to use for games or visually intense apps.


Also, using middleware requires good knowledge of compilers and build tools, which makes it an inconvenient option for beginner developers.


5. Design: How Your App Is Used


Not all that is apps is programming. Graphic design is big in the app industry; it’s a requirement for any app that wants to be taken seriously. Are you considering programming your own apps? If your budget allows it, hire a graphic designer. There’s plenty of those around on outsourcing sites like Elance or oDesk.


That being said, you don’t need a graphic designer if you’re just starting out. On iOS, you can work with the many pre-fab components that Apple is using in their own apps and throughout the operating system’s UI. The standard iPhone user interface components don’t look exceptional, but they’re not bad either. It’s a great way to get started without spending too much time on the graphical look of your app.


Tools and Resources


Human Interface Guidelines gives you a good overview of available components and how to use them.


Icons: Consider using an icon kit such as Glyphish (commercial). They’ve put together hundreds of icons, optimized for iPhone apps, including social media icons, play/stop buttons, and symbols for app-related tasks such as new, edit, and send.


Mockups: Another tool you definitely must use is Balsamiq Mockups (free trial, commercial). It’s a point-and-click editor for making mockups of your apps. A mockup is a rough sketch and it shows and explains how your app works and what it does. Never just start programming: take a step back and rethink your apps UI and layout by making a mockup.


Did you make a sketched mockup, but can’t get a feel for how the app will actually look? Work with the design PSDs from Teehan+Lax (free). They’ve extracted all the GUI components from iOS and made them available as vector graphics. Perfect for making a graphical mockup!


6. How To Enable An App For The Internet


Is your app connected to the internet? Creating a custom back-end with server-side languages like NodeJS, Ruby or PHP can take up lots of time, money and effort. It’s easier to use a Platform-as-a-Service tool, such as Parse.


Parse is a cloud-based solution for storing data offline and online in your app. Say, you’re making a social app with a stream of pictures and status updates. You could use Parse to store that data in the cloud and use their SDK to get it from and to your users.



Using a tool such as Parse completely removes the need to build a custom back-end. Parse’s basic usage tier is free, subsequent tiers start at USD100/month.


Alternatives to Parse are Appcelerator (middleware + PaaS, commercial) and App42 (PaaS + analytics, free tier).


7. Going From Beta To Live


Before an app gets published in the App Store, you need to upload it with iTunes Connect. You enter your app’s basic information like a description, app categories and what app icon to use.


Your app then enters the review process, a requirement from Apple. A reviewer from Apple checks if your app adheres to the Review Guidelines and whether it has bugs. It’s a quality check to ensure only good apps enter the App Store, and from the point of uploading it takes about 2 weeks to get your app reviewed.


More on Hongkiat:


10 FAQs to Creating Your First App


Of course at this point you might still have some burning questions related to creating your very first iOS apps. We’re going to take a look at the top 10 questions new app developers are concerned about.


1. How much does an app cost?


The cost of development of an app can really differ from one contracting company to the other. Outsourcing freelancers can create a simple app for around USD3000. Bigger companies can ask from USD25,000 to USD100,000 for a complex application, including graphic design and back-end programming. Companies like Tinder, Pinterest, Facebook, etc. can spend hundreds of thousands to millions on developing and marketing one app. Just like anywhere else: you get what you pay for.


2. I’m stuck with a programming bug. How do I get help?


A lot of beginner programming questions have been asked already on sites such as StackOverflow. Search for the error message or bug you found, and you’ll most likely find a solution. When asking a question yourself, always search first, and make sure you explain your problem thoroughly and tell the steps you’ve already taken to solve it. Quora is a good medium for asking non-technical questions, such as about business and UX/UI topics.


3. I have a brilliant idea for an app. Where do I start?


If you’re serious about creating a business based on an app, don’t start with programming immediately. First, validate your business idea by pitching to your target audience.


Get in touch with potential customers and survey them, asking for feedback.


Keep in mind that most successful apps solve an immediate problem, in such a way that customers want to pay for it. When you’ve validated your idea, and created a relationship with your first customers, proceed with design and development of the actual app.


4. Do I need an iPhone to create apps?


No, but it’s recommended. Xcode has an iPhone Simulator, that runs your apps just like a physical iPhone would. Holding a real iPhone with your app in your hands is different from seeing it on your computer’s monitor, so testing your app on an actual device is recommended.


Keep in mind that Xcode only runs on Mac OS X.


5. I’m not good at maths, do I need it for programming?


Yes, and no. It’s an urban myth that to be able to code you must be good at maths. A lot of programming principles find their roots in mathematics, but they’re not required for a basic understanding of how to make apps. When you dive deeper and become more proficient at programming, you’ll find that you have picked up some maths skills along the way.


6. I work for a company. Do I pursue my app idea with the company, or in my own time?


It depends on the company and your position. Are you an engineer and is your company’s core business online, digital or closely related to apps? Then you might want to build a prototype and convince your supervisor or employer to pursue the idea.


If you think your employer won’t see the value, you can pursue the app idea in your own time. Be mindful of your contract with your employer. Inventions made during your time with the company could be regarded as the company’s intellectual property, not yours.


7. My app idea already exists in the App Store. What do I do now?


The fact that it exists doesn’t mean it’s a good app. You can always create a competing app and make it better than what’s already out there.


Likewise, the fact that an app doesn’t exist yet doesn’t make it a good idea to create it. It could well be that an app has been published multiple times, but was pulled from the App Store because there was no need for it.


Always validate your app idea by the problem it is solving and the value it has for its users.


8. Why is the iPhone sometimes called iOS?


There’s a slight difference: iPhone is the name for the actual hardware smartphone and iOS stands for “i Operating System”. Going back into Apple’s history, the iMac computer was the first product to have the prefix “i”. Later on, they’ve followed this style and created more products: iTunes, iPod, iPad and iPhone. It’s only natural to call the operating system that runs on the iPhone, iOS.


9. How do you effectively market an iPhone app?


Entire books have been written about this question! It’s a hard one, but not impossible to answer. All successful apps solve one problem, in such a way that people want to pay for it.


You can either come up with a problem and find people that need your solution, or find an audience and survey them for problems you could make a solution for. Keep in touch with this customer group and give them a way to tell others about your product. Referrals and word-of-mouth is an effective and cheap marketing machine.


10. What’s the worst way to learn programming?


Giving up is one of the worst ways to learn programming. Learning a new skill has ups and downs, and you can only keep going by celebrating the ups and seeing through the downs. Giving up is not part of the equation.


Also, find out what your learning style is. There’s no point in watching videos, when writing code and trial-and-error suits you better.


Finally, don’t randomly pick a book on programming from the library but find a proven learning method or path. When learning Spanish, you don’t start with reading a dictionary, right?


Learning Resources To Get Started


If you still want to go through with creating your first iOS app, this section is where you find all your learning resources to get started.


App development involves a lot of components, and when you’re new it can be quite a challenge to get acquainted with all the tools. Fear not! You can make your first app in a day at max, with no prior programming experience. The only thing you need is a good resource that shows you the ropes and focuses on one toolset at once. There’s plenty of beginner tutorials on the internet, as well as premium courses.


The Learning Process: In Brief


What’s your learning style? Consider that before you pick a resource.


When you’ve built your first app, it’s a great plan to briefly dive into a number of components after one another. Learn about:


  1. Using navigation controllers, such as tab bars and hamburger menu’s

  2. Using hardware, such as the camera and accelerometer

  3. Using layouts, such as the table view controller and the page view controller

  4. Working with animations and view transitions

  5. The app lifecycle

  6. Compilers and build tools

Most of these topics require a couple of days (24 to 32 hours) of tinkering, trial and error, and looking up resources.


Once you got the basics figured out, get straight into working with internet sources and cloud-based solutions such as Parse. All apps are connected to the Internet one way or another.


Regardless, those who are used to learning new things often can outline their own learning plan and do not necessarily need to follow a program such as a course or a book.


Wrap Up


Wouldn’t it be great to have your own app in the App Store? You now have a basic outline of the tools involved in making apps, and what it takes to learn how to make your own apps. Get started with Swift by reading a book or following a tutorial, craft a great looking interface with Balsamiq, get yourself a developer account and publish that app!


Full Reference List:


Editor’s note: This is written by Reinder de Vries for Hongkiat.com. Reinder is an entrepreneur and app developer, who believes that there are not enough app makers in the world. He has developed 50+ apps and his code is used by hundreds of thousands of users all over the globe. When he’s not coding, he teaches aspiring developers how to make their own apps at LearnAppMaking.com.


Now Read:
How to Integrate jQuery Mobile in Phonegap/Cordova




Ultimate Guide To Building & Publishing Your First iPhone App

Tuesday, January 20, 2015

Ultimate 12-Month Guide To Learning WordPress (Plus Resources)

If you want to learn something new in 2015, why not make it WordPress? It powers a huge chunk of the web, you’ll understand your own website better, you’ll be able to communicate with developers better, and you can make some money helping out others. In addition, programming gives you insight into a certain way of thinking which can be helpful in other walks of life. The trick is to know what you need to learn and to go at it consistently – discipline is required.


learn wordpress 2015


This is a 12-month guide on what to focus on, one topic per month, one month at a time. Bookmark this guide and visit it regularly throughout the year, and by the end of the year, you might be able to hold your ground when it comes to WordPress.



Learn To Use WordPress Properly (Jan)



Whatever level you use WordPress on, I”m betting there are many things you don”t know. In January you should focus on the admin side of things, no coding just yet.


Make sure to inspect and try out all the functions you see. Try all the links, look at screen options, Help tabs, try to schedule a post, figure out what a sticky post is, create a sidebar and some widgets, assemble a menu, look at all the available settings and so on.


The idea is to become proficient at using WordPress so you can read and work through tutorials faster. Many people skip this step and it causes unnecessary confusion during the learning process. While programming you don”t want to be distracted by what the WordPress importer is, you’ll have plenty to do without that burden.


Resources That Can Help


The list below is by no means exhaustive but I recommend that you go through each section in the admin and try everything out. If you can”t figure out what something does, Google it and go from there.


Developer Tools & Basics (Feb)



To get started with development you’ll need some tools and some basic knowledge about working with files. The first thing you’ll want is a capable text editor. There are plenty of code editors previously reviewed here in Hongkiat, and most are.


I personally use Atom, and editor made by GitHub. While it is a hugely capable editor it doesn”t have easily accessible FTP capabilities (which I recommend you take into account when choosing an editor. you’ll see why in a moment).


Familiarize yourself with your editor. Whichever one you use I recommend reading about it via Google searches, looking through the settings and make sure you can use it to create and edit files on your computer with confidence.


Next, you’ll want to learn about FTP. File Transfer Protocol is a way to read and edit files on a remote computer. The idea here is that you’ll be able to modify your website without having to download files, and upload them once you”ve modified them with a separate application. Here”s a look at Coda 2 in action.



You should spend some time this month learning about how basic aspects of the Web work. Why web servers are used, what a browser is used for and so on. You don”t need to go into too much detail but you’ll need a basic understanding of a number of concepts.


Resources That Can Help


HTML & CSS (Mar)



It”s time to get our hands dirty with some HTML and CSS, the main languages of the Web. HTML is what gives pages their structure, CSS is what styles them to look the way they do. They are both easy languages but they require pratice to master.


I think it is important to mention that from here on out you will need lots and lots of practice. I believe that all languages used on the web are easy but there is a great deal of easy information to digest which is part of the difficulty of programming.


Don”t get discouraged if you don”t understand something or something isn”t working, we”ve all been there. Once you”ve gone through some resources and you feel ready for a challenge I recommend practicing by finding an element you like on a website and trying to recreate it. Another good method is to head over to 365 PSD or Dribbble and finding a web element you like.


For example, take a look at this Easy Notes shot on Dribbble. Click on the attachment and try and recreate the middle to-do type widget.



Once you can create individual elements you can tackle larger projects, like a full website. You can browse sites like Themeforest, Designmodo and Premium Pixels for further inspiration. You can even take ready-made WordPress/HTML themes and try to recreate them at home as a static HTML page.


Do make sure to be aware of licencing. Themes on Themeforest and many other places are licenced and may not be used without a licence even if you recreate them from scratch!


Resources That Can Help


HTML


CSS


Other Resources


PHP (Apr)



The time has come to learn some server side stuff. So far you have only learned clientside code. HTML and CSS is sent as is to a user”s browser and is processed there. PHP is processed on the server and is converted to HTML and CSS and sent to the browser. It introduces a huge number of useful features which you’ll learn about this month.


PHP is what allows WordPress to display thousands of articles using a single file. PHP is how a website can display the logged in user”s name, how Facebook can display your friends, and so on. The same page on Facebook will look very different for you than it does for me due to the magic of server side code.


Again, PHP is not difficult but there is a lot to know. The difficulty is further increased by not being able to create something useful for quite some time. I recommend looking at WordPress themes as soon as possible to see some practical applications.


Keep in mind that you don”t need to know everything in PHP to get started with WordPress. Object Oriented PHP is not something you’ll need to worry about in the short term and you don”t have to memorize all the functions available.


Having a good working knowledge of variables, loops, if statements and functions is a good start. From there, the more you know the better, and you’ll pick up a lot of things from WordPress itself.


Resources That Can Help


Modifying A WordPress Theme (May)



Finally, we can get started with WordPress! WordPress uses HTML, CSS, PHP and Javascript to display content. You haven”t learned about Javascript just yet but that”s ok, we can do that in a later month.


The first thing you should do is modify a theme. Using FTP go into the folder that holds your active theme and play around with it. Find where the title is and move it below the content, add some text, add some CSS and so on.


Note that this will actually change your live site so only do this if you’re sure it”s ok. Also, themes should never be modified by touching their code directly. It”s fine for practice but in reality you’ll need to either create your own theme or use a child theme to modify an existing one (see the resource section for this month for more info).


The goal for this month is to get comfortable with how a theme works and the code that it uses. You should start learning about template tags, special WordPress functions that can be used to display post data, and the files that a theme requires.


The theme I recommend modifying first is Twenty Fifteen. This should come installed with WordPress 4.1+ as it is the new default theme. This theme follows all current standards and sets the bar for development; you can be sure that whatever coding you see in Twenty Fifteen is correct.


At the end of the month you should feel comfortable making minor changes to a theme and you should have a rough idea of how to start your own theme from scratch. Don”t forget, this month is about experimentation, don”t be afraid to do things that are advised against on some sites. you’re learning, not creating a product!


Resources That Can Help


Creating A Theme (Jun)



Creating a theme is not too different from modifying an existing one but you’ll need to create a lot of your own files. Don”t be afraid to copy-paste from other themes like Twenty Fifteen. Files like comments.php which governs the discussions is roughly the same on most sites. You can use CSS to make it look different, and just rearrange some HTML perhaps.


Creating a theme is a good exercise because it takes you through so much functionality it deepens your knowledge of WordPress in general. you’ll need to create a header and footer, you’ll need to think about sidebars, menus, comments, single posts, pages, home pages and more.


You should be focusing on questions that come up during development. Your website will show the latest 10 posts on the front page, but "what do I do if I want something completely different?" These are the type of questions that may only arise while building something.


you’ll need to have a good understanding of the template hierarchy which governs the files responsible for displaying specific content. Make sure to take a look at page templates (see resources). These allow you to build pages with custom functionality.


Once you”ve gone through everything, I recommend taking a look at Advanced Custom Fields. This plugin allows you to create extremely useful option groups for posts which you can use in your themes.


I”ll list plenty of resources here but if in doubt, refer to the Twenty Fifteen code base for help, it should have everything you need!


Resources That Can Help


The Basics About Hooks & Plugins (Jul)



The hooks system provides the foundation for plugins. They allow you to add new functionality to WordPress or modify existing core functionality without the need to modify the core code.


They work kind of like triggers. Instead of going to the code in the WordPress files which publishes a post, and adding your own code to send the author an email, you can say: “When WordPress publishes a post, send an email to the author”. This can be done in a completely separate file which means the core code is never modified.


You”ve actually been using them in your theme as well when you used the wp_head() and wp_footer() functions. WordPress uses these internally to output a bunch of code, like the admin bar for example. This is how plugins can modify themes without actually touching the theme.


Learning about hooks will be your entry point into plugin development. Understanding them is key to working with WordPress and perhaps offering professional services in the future. Take your time to master this one, you will be relying on hooks heavily for all your projects.


This month you shouldn”t delve too deep into plugins but learning the required files and some basics will probably fit inside our timeframe. Plugins are very easy to create, they actually just require a single file with a comment on top.


From there you can do whatever you”d like but you do need to use the correct hooks – which is why hooks are so important.


Resources That Can Help


Plugin Proficiency (Aug)



August is the time to put some practice into creating plugins. Find something you would want a plugin for and do it yourself. Would you like all instances of good transformed into “awesome” any time a post is published? Go ahead and do it.


If you find a great idea feel free to submit it to the plugin repository but the name of the game is practice makes perfect. You can start to worry about following coding standards and making sure your code is commented and nicely formatted.


You should have enough knowledge now to be distracted by such things. After a while commenting and standard code will be second nature, even if it seems a little unweildy at first.


Create at least 2-3 plugins this month. Make them varied, if one modifies post content, perhaps the other should do something when a post is published. Perhaps you should create some custom post types and custom taxonomies, these are frequently needed for more complex projects, see the links in the resources section.


This is the stage where you should gradually be learning outlying areas of WordPress like creating new roles, custom post types and more. You can hunt all of this down and study them but it may be better to tackle them as they come up as a requirement for a project.


Coding efficiently and confidently with the things you know is more important than the amount of things in your brain. I”ve been coding for a long time now and I sometimes need to look up the simplest of things. Knowing that something is available is enough, being able to code with ease is more important,


Resources That Can Help


Javascript (Sept)



The (almost) last piece of the puzzle is Javascript. Javascript allows you to add interactivity and other advanced features to your website. By utilizing Javascript you can an pop-up modals, load comments in place, implement endless scrolling and much more.


Javascript is fundamentally a client side language but can be coupled with server side code using AJAX. This is what allows you to vote on an article for example. When you click the vote button the button changes to a thank you note and the vote count is incremented by one. All this happens without the page reloading. This is Javascript coupled with some PHP using AJAX.


Most of the Javascript you’ll be using will be jQuery. jQuery is a Javascript framework which implements special functions and gives you easy access to commonly used patterns. It”s important to understand that jQuery is not special Javascript, just as there is nothing special about the PHP used in WordPress. It”s simply a frame in which you can work.


Javascript can be the most complex since it spans multiple disciplines and can be found in many aspects of a website. From tracking codes to loading resources, managing images, intercepting user actions and simple animations, it is truly everywhere.


The good news is that you know you have all the knowledge you need to add Javascript to your theme or plugin right away. You should be “over the hump” – anything you learn right now should be easy to implement once you”ve learned it.


Resources That Can Help


Javascript


jQuery


More


Practice Practice Practice (Oct)



To underline how important practice is I would recommend devoting an entire month to it at this point. I”ve been programming for quite some time now and compared to a newcomer I can understand new concepts faster but I”m still completely lost without practice.


Luckily, the more your practice, the faster you will learn things later. In fact, by getting used to always working with code, you will need less and less practice to get the same result.


In a WordPress environment the best way to practice is to create themes and plugins. One method you can try is to recreate a simple, already existing, plugin from scratch. If you get stuck somewhere you can look at the source code of the actual product.


Focus on deepening your understanding of concepts you already know. Get into the practice of reading design and developer magazines, and developer blogs of your favourite apps. Here are some of the biggest places to read about web development apart from right here on Hongkiat of course.


Your Reading List


Advanced Concepts (Nov)



This is the month where all the knowledge you have should come together and you can start becoming a programmer. You should be able to start seeing the big picture and have a working knowledge of the four main languages that WordPress uses: HTML, CSS, JS and PHP.


I would advise starting to learn object oriented PHP. You are already using it in your themes and plugins in the loop and other constructs. OOP (object oriented PHP) will enable you to write better code and to understand the core code of WordPress better. In addition, it is the gateway to programming with C type languages and thus creating apps for iOS for example.


You can further your WordPress knowledge by learning about some of the classes, how to interact with the database directly, how transients work.


You should be able to undertake small, paid projects now with confidence. Don”t forget that doing actual commissioned work is where you learn most. It”s not only about coding, it”s about learning to communicate about code to people who don”t know anything abut the internet.


Practice is important at every stage but you should now have enough knowledge to learn a concept without too much work. Transients (options with an expiration date) should be clear for example, even if you”ve never had the need for them. You should be able to gauge when they will be useful, and look them up as needed.


As the final language to learn for WordPress you will want to look at MySQL which is used to query the database directly. Much of this functionality can be used via functions but sometimes you’ll need to query the db directly.


I would like to stress the importance of getting into an object oriented mindset. It will seem very alien at first and the usage of them will seem unclear. Remember how the use of PHP was unclear when you first studied it? How does a variable and an if statement get me a webpage?


Object oriented PHP is similar. It is used for complex cases, the more convoluted things in it are only needed for large-scale applications. This is why concepts sometimes seem redundant or over-complex.


I really recommend high-quality video tutorials for this one. My favorites can be found on Laracasts (see resources). Laracasts was primarily made for Laravel but contains a lot of OOP and other high-level concepts.


Advanced Development Tools (Dec)



Now that you know a lot more it”s time to make your life easier by learning to use some advanced tools. This includes things like using SSH to access a server, WP-CLI to manage WordPress installations, Vagrant to create a local WordPress installation, and more.


The first thing you should learn is how to set up WordPress locally using XAMPP, MAMP, WAMP or Vagrant. I personally use Vagrant, but the rest are just fine too. This removes the need to use FTP all the time, considerably speeding up development time.


Next you should look into SSH. This involves using the terminal and issuing commands. This sounds scary but really isn”t. It will open up a whole new world. WP-CLI will be a great introduction to this. It allows you to install WordPress in a few seconds, download a theme, update it, and create test users with a simple command.


I also recommend learning all about CSS preprocessors. Languages like LESS and SASS allow you to use variables, functions and other advanced concepts in your CSS.


As a part of your preprocessor studies you should learn how to use advanced compiler tools like Prepros or Codekit. These tools can reload the website whenever a file is saved, automatically compile CSS, minify Javascript and so on.


This will give you insight into the world of coding for production. In development you want to use as many separate files as you can to make your code more logical. In production you only want as small a footprint as possible so all Javascript and CSS files should be minified and concatenated. The mentioned tools give you all you need to get comfortable with this.


You should also start working more efficiently with your text editor. Are you using snippets? Are you checking your syntax automatically? Do you know all the keyboard shortcuts that would make your life easier?


This is an area where you can continuously change and grow. I went from using XAMPP to MAMP to, finally, Vagrant. It was a natural learning curve and I am still in the process of learning all there is to know about Vagrant.


I went from using Notepad++ to Sublime to Coda to Atom. There”s nothing wrong with any of these tools but as I grew I naturally progressed from one to the other.


Finally, you will want to look into version control, specifically SVN and Git. The basics are much the same, you’ll need to learn some separate commands, but once you understand one, the other will be easy to grasp.


The reason you’ll want both is that WordPress uses SVN at the moment so when you release plugins and themes you’ll need to use SVN. Most projects use Git as it is a bit better for working in teams, so that is what you’ll want to use for other projects.


Resources That Can Help


Final Words


I hope this article gave you a good overview into what is required to get from nothing to being a pro developer. In reality if you can commit full time it probably won”t take a whole year.


There are two big things to keep in mind. The main one is that while no single bit of this is difficult, it is a LOT to know, which makes it hard when put together. Don”t be discouraged if you get stuck or you work slower than others. Everyone works in their own pace, if you keep at it, you will become a good developer.


Also, one of the main characteristics of good developers is that they never stop learning. They continuously look for better solutions, learn new languages and new methods. They keep in mind that the world of coding is not black and white, many times there is no single good answer to a problem.


Good luck with your coding studies in 2015, let us know how you’re doing in the comments below!











Ultimate 12-Month Guide To Learning WordPress (Plus Resources)