[Translation] Introduction to iOS development tools (Part I)

Source: Internet
Author: User
Tags hockeyapp

IOS Development TIPS & Tricks-part I

http://blog.trifork.com/2013/12/19/ios-development-tips-tricks-part-i/

As you might know, I am very fond of developing apps for the IOS platform. I started back on mid-2009 by trying to create a app for the Dutch Lowlands Festival but I unfortunately failed To make the app a reality. I didn ' t care because now I learned what to write IPhone apps!

Perhaps you know, I really like to develop software on the iOS platform. I tried to develop an app as early as the middle of 2009, but unfortunately, I didn't get the app to meet you at the end of the day. Of course I do not care, after all, it is my maiden test water, I learned from the inside how to develop an app.

After the I never stopped trying out new app ideas in my spare time and occasionally blogging about it. In the, I created an app to the use of communicate with the friends using our custom Forum-like website which is called ' Yert '.

Then I never give up in my spare time to develop a new app. In 2010, I developed an app that, like a forum, allows friends to communicate with each other, and the app is named ' Yert '.

And later, March, I created an app in my spare time together with my uncle (Jos Jong) and brother (Jim van Zummeren) Which turned out to being quite profitable: EasyCalendar. I learned the most creating this app. I also developed some IOS apps for clients of Trifork, for example I made the love-to- load app for the New Motion And an apps that allows doctors to log their hours for Gerimedica:ysis mobiel.

Then, in 2011, I and my uncle and eldest brother developed a calendar software in my spare time. This time I really learned how to develop an app. Then I developed some client apps.

Oh, and I almost forgot: learn to write with Tracy! An IPad app that's makes learning how to write for children and thus effective.

I almost forgot another app. An ipad app, an app that teaches kids to draw.

Next to the apps that made it into the App Store, I worked on a bunch of other ideas in my spare time that unfortunately N Ever saw the light of day. But I learned from them every time. I want to share some tips & tricks and all, which I learned over time. I want to talk on what is tools I use nowadays, what frameworks I recommend and the different ways of distributing an app.

In fact, in addition to the App Store on the line of those applications, usually I also developed a large pile of semi-finished products have not been able to go online. But I learned a lot from it. I'd like to share some tips and suggestions with you. I'll introduce you to what tools I use, give you a good frame of recommendation, and different tools for developing apps.

Ide:appcode

first off, I want to talk About  Appcode , which I think are the best ides for the job. I talked about it in great detail in a blog I wrote Earlier: appcode:intellij For Objective C! . After using it for over years I still think it's the best IDE for creating IOS apps. Xcode (the IDE that comes bundled with the IOS SDK) have become better and better since I wrote that blog, but still appcod E triumphs. It's hard-to-say why it's better in one sentence, so I recommend reading the Appcode blog I wrote. But if you know intellij  you know what I am talking about. The IntelliJ is better than Eclipse, the same-in-a-appcode is better than Xcode.

First I want to talk about Appcode, which I think is the best IDE tool for developing apps. I talked about it in detail in my previous blog post. I used it for two years of development. However, Xcode is getting more and more useful, but I still use it occasionally. It's hard to explain the good in a word, so I suggest you read the post I sent before. If you know what a IntelliJ is, you know it's better than eclipse, and appcode good places like IntelliJ and Eclipse.

Appcode is isn't a full replacement of Xcode, which actually was an advantage! It opens Xcode project files and saves them back as Xcode project files. This makes it possible-still switch back to Xcode at any time. So there are no risk involved trying to use Appcode. For example Appcode doesn ' t has the Storyboard interface designer. You can simply switch back any time you need to create a storyboard, and continue writing code using Appcode. Also, whenever there is a big change in Xcode, for example new language features, it generally only takes appcode a couple Of weeks to catch-in the form of an update.

Appcode is not an alternative to Xcode, it opens XOCDE works, saved as XOCDE works, and XOCDE compatible, using Appcode does not appear to be the problem oh. But where is the difference? For example, Appcode does not have an IB design interface. You can create it in XOCDE and then use it in Appcode. Each time Xcode has a new feature, a few weeks later the Appcode will be updated to complement the missing features.

Dependency Management:cocoapods

Next up is dependency management. Admittedly, with IOS you don ' t need as much dependencies as if you developing Java applications. Most of the stuff you ' re going to need are already included in the IOS SDK. But for the dependencies need,CocoaPods is your friend! It ' s a popular dependency management tool for IOS (and MAC).

The next is the dependency manager. To do iOS development, you don't need to set up a variety of dependencies (not as disgusting as Java). Most of the dependencies are integrated into the iOS SDK. But you still need it, CocoaPods. It's the most popular on iOS (and Mac).

The It works is really easy. Simply install it on your Mac with the following Terminal command:

It's very simple to use, a word to install OH:

1 sudogem installcocoapods

After it's installed you can go to your Xcode project directory and create a file namedpodfile:

after installation, you can create a file in your Xcode project directory named Podfile:

1 platform :ios, "6.0"
2 pod ‘AFNetworking‘, ‘2.0.2‘

This file tells CocoaPods so want the dependency called "afnetworking" and that your project requires IOS 6.0. This is the if a dependency requires a later version of iOS than your project ' s minimum iOS version, CocoaPods'll tell you.

This file is meant to tell Cocoapods that you need a dependency called ' afnetworking ' and that your project compiles to a minimum target of iOS6.0. If a dependency requires an updated version of iOS, it will tell you about it.

Now run this simple command that'll fetch the dependency and attach it to your Xcode project.

Now you can run the following command to automatically get dependencies with your Xcode bindings .

1 pod install

Next to your current mycoolproject.xcodeproj file, CocoaPods created a workspace file, called Mycoolproject.xcworkspace. From need to open the workspace instead of the project file, which includes your project as well as the Cocoapo DS dependencies.

A workspace file created by Cocoapods appears next to your current file. From now on, you only need to open that workspace file, which contains both your project files and cocoapods dependent files.

Can This get any easier?

The answer is yes! Appcode recently added support for cocoapods! Appcode helps you create the podfile using autocompletion and you don ' t has to go to the Terminal anymore to install the dependencies! (a.k.a "pods")

Can it be simpler? That is inevitable, Appcode recently added support for Cocoapods! Appcode helps you create Podfile, you don't have to use the command line to tinker with it.

Where does the pods come from?

All pods is stored inside a single Github repository: https://github.com/CocoaPods/Specs. Fork this repository and submit a pull request if you want to add your own pod! I did it a few times myself and the pull requests is usually accepted within a day, most of the time even within a couple of hours.

If you want to use Cocoapods, find it on GitHub, it's easy.

Continuous integration

If you ' re a Java developer you ' re probably already using theJenkins for continuous integration. Did you know can also the use of Jenkins for Xcode projects?

If you're a Java developer, you may have used Jenkins. But you know, the goods can also support Xcode's project.

Simply Install the iOS Builder plugin into Jenkins. (Download the ". HPI" Plugin file here) Jenkins of course have to run on a MAC server.

You just need to install IB into Jenkins, and of course, this Jenkins is running on Apple's device.

Features:

    • CocoaPods Support (woohoo!)
    • Code signing
    • Packaging
    • Easy Configuration

Alternatives continuous integration systems could take a look at:

    • Xcode Continuous Integration. I tried this one as well. It's very easy-to-setup but I found it-to-be a bit limiting. But it's the Apple supported-do continuous integration, so it's worth a try!
    • Travis CI, which is a online continuous integration solution which integrates well with your Github repository, And it supports cocoapods! I Haven ' t tried this one yet.

Distribution

While developing a IOS app, you might want to involve testers or just random people your want to show off the app to. As you might know, Apple provides a alternative to distributing your apps to the app Store which are made specifically for This purpose. It is called "Ad-hoc" distribution. This is basically a-to-sign your app against-to-devices and make it available to those devices via a URL. You could simply set up a Apache server somewhere and upload the required HTML and IPA (app binary) to it and send people The link to the HTML page. But, you'll soon find out the This is a drag to does each time you want to deploy a new version.

When developing an app, you need testers to test. Apple development needs to get a development certificate from the App store called Ad-hoc. This is used to allow you to authorize 100 devices. Perhaps, you build a simple Apache server, upload your IPA package and the authorization information for the device, and send it to the person who needs to be tested. But pretty soon, you'll find that you're going to be fucked up when you develop a new version of the app.

Also, your testers might encounter crashes and you would really like to see the crash reports (stack traces) to debug the Issue. If you want to does this without any help, you'll need to ask the tester to connect he iphone/ipad to ITunes, retrieve th E crash reports and send them to you. This was far from ideal. And what if you receive the crash reports from the testers? With IOS won ' is able to decipher them unless you saved the "DSYM" file is produced when you built the Ad-hoc b Inary. Oops, you threw it away!

Maybe, your tester crashes, you want to see the cause of the crash, and if you're not using external tools, you need to have the tester connect its iphone or ipad to itunes, get back their crash reports, and send it to you. It's disgusting. You want to reproduce? You also need to dsym files.

So-to-sum up your need some kind of mechanism to make it easy to:

    • Distribute your app to testers and other interested people
    • Gather Crash reports
    • Automatically save DSYM files

TestFlight Test Tools We basically don't use them, we don't translate them.

Well, luckily there is services available online to help you with these things, and more! The first one I ever used wasTestFlight

    • supports IOS & Android
    • divide testers into groups using "teams". For example a different team for each app
    • provides a desktop Clien T that makes it easy to upload your IPA and DSYM files
    • has an SDK To automatically upload crash reports and to do Analytics
    • has a Me Chanism to let testers provide feedback from within the app
    • it is free!

After using it for a while I found it have a few shortcomings:the crash reporting functionality is unreliable, I hardly fi nd any crash reports in the backend while I know there is many more. Also the TestFlight website can be kind of confusing, and it's a hassle to sign up new testers.

HOCKEYAPP Test Tools We basically don't use them, we don't translate them.

Nowadays I use a different service called HockeyApp. A strange name, but especially for distribution and crash reporting it works to better and easier. HockeyApp in favour of TestFlight:

    • Have (as far as I know) all the features TestFlight have
    • It actually saves every crash that occurs
    • It asks the user wether to send the crash report or not
    • It groups The crash reports to easily see the different kinds of crashes, and how often they occur
    • Unfortunately it isn't free, but also it's not very expensive ($ A month for 5 apps)

I definitely recommend HockeyApp.

To be Continued

In this blog I showed your what I think is currently the best tools to use for developing IOS apps. In the next blog I'll go more to the actual code by highlighting the frameworks I recommend. I know it ' s a cliche to say, But:stay tuned!

In this blog post, I've introduced you to the best tools available today, and in the next blog post, I'll show you the tools that make the framework highlight. Although the cliché, but also please look forward to.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.