I am trying to integrate openfeint with my app.. though it's not actually the integration I am stuck on, successfully able to open the leader-board, but actually the development flow. I mean what is the least we need to do... When to submit score and how? Achievements are bit ambiguous:( .. was searching all around then figured out it'd be the best way to get exact answers to my question. Kindly help.
EDIT:
My main question is that what least should be done in an app to say that it's openfeint integrated.
At a minimum, achievements and leaderboards. But I'd recommend using OpenFeint because it solves a specific problem for you, rather than to simply check off a feature. If you don't have a clear idea, you may not have a clear idea of the game's overall design. If so, you might be better served to come back to the integration half-way in, after you've made more decisions.
Then you can say things like "Oh, I have three different play modes. I'll make a leaderboard for each." Or "This level is really hard – I'll definitely award an achievement if they complete it in x time." And so on.
But you should really reach out to OpenFeint's dev support if you have questions like this – they'll be able to give you good advice on integration.
Related
Ben Copsey has abandoned ASIHTTPRequest. It has been announced almost two months ago but I just realized it.
I'm in the middle of a project using it. It wouldn't be an huge problem for me to replace it with something else at this stage (everyone is talking about AFNetworking right now), but:
If I can avoid replacing it it's better. I'd rather spend that time working on other things
I'd like to support iOS < 4, but AFNetworking and LRResty are 4> only
I also have a few other apps that heavily depend on it
I'm pretty sure other folks are in my situation. So my question is: is it safe to continue using it?
If it works for you already, there is no point replacing it. Ben has only stopped development of it himself, that doesn't mean others are not free to continue developing it.
It just means that it won't get updated.
On the blog post he has provided other options that you can use.
I would continue using it. He probably quit working on it because it had all the functionality possible and was complete for all time (jk). Seriously though, it's a great library and your only fear would maybe be something that might break in a new version of iOS, but I guarantee someone will develop a fix for something like that.
I need to develop a client application for a site that host and show images.
The client should shows all new images and take a picture and send to website.
I'm a newbie to iOS programming so this question:
In an application alike this, there's the need to create a Model? I ask this question because I think I can do anything with Controllers but maybe I'm wrong.
While there is never a "need" to create a model, it's good form to do so, and it'll likely save you many headaches down the road. Ultimately, you're going to need to deal with images and websites and how they interact with each other and whatnot, so you might as well do it in models from the outset.
I'm as guilty as anyone for wanting to see immediate results and hack together something quickly, but I always regret it later on, and have to spend more time than I'd expected refactoring it into something usable.
The MVC pattern as used in Mac OS and iOS applications isn't something best explained in an answer box but here's a link to some simple documentation about the roles of Models, Views and Controllers
Some good basic introductions to start with, which also have relevant links to the next stage of documentation are:
Cocoa Core Competencies
Cocoa Application Competencies for iOS
Read these excellent articles first. You'll learn better and faster if you do some basic reading.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I'm wondering if it's realistically possible to learn the iPhone SDK and complete an app by the end of this summer. The app shouldn't be too difficult, it would just interact with my site's API and essentially just fetch, create, and edit resources. I already have a little experience with the SDK (and I'm comfortable with Objective-C), so I'm not completely new to it. Although here I things I don't know how to do and what I'd need to learn:
Log in to my site using basic http authentication and store the user's username/password for all future requests
Implement a toolbar at the bottom to navigate between different views
Fetch and parse xml into list items
Do POST/PUT requests to create/edit a resource on my server
Are there any good resources available to learn how to do those tasks above? Thanks!
You mentioned creating/editing resources on your server. If you're running Ruby on Rails on the backend, you might find Objective Resource interesting, an Objective-C interface into Active Resource:
http://iphoneonrails.com/
But back to your original question, it all depends on how polished you want the app to be. My advice is, ignore if you can do it and just get started learning. Start with the (free) Stanford iTunes U course podcast.
I learned and published in 3 months. The question is are you comfortable with Objective C (which you are) and are you familiar with cocoa and the MVC pattern?
Basically, unless you are totally new to programming, go for it!
I wrote an Android game in two weeks with out knowing Java or the Android API or that much about game programming.. But I had to copy and paste a lot of stuff from documentation examples and other available source code. It is theoretically possible to learn enough to write an iphone app in that time and build it. But it is up to you to focus and see it through, that is the hard part.
Yes - I've even done it.
I had an internship for 2 months last summer and I managed to learn objective-c and create and polish a fairly complex app within that time.
The way I did it was just to throw myself into it. I knew what needed to be done so I jumped into it. I had a quick look at some open source code for various things to see how other people did it then apply those rules to my own code.
2 important things to remember:
Google and stackoverflow are your friend, if your having trouble with something google and stackoverflow will normally have an answer.
Option, Command and double click on something in your code will open up the apple developer documents and do a search for the thing you double clicked on. This gives a really easy way to check for methods and properties in Cocoa classes.
Yes you can.
My suggestion, learn the basics first. Grab a book - I recommend "Beginning iPhone 3 Development" by Jeff LaMarche & David Mark - read most of the chapters (a few of the later ones you can probably leave for another time if you don't need them yet, but do all the earlier ones) and get your head around the essentials. Do the exercises and code as much as possible. There are plenty of learning resources around the internet too.
Then tackle your app while continuing learning. By this point you'll have fallen across & bookmarked a few relevant web links or grabbed a book or two specific to your app's needs, and it should all fall into place.
Good luck! :-)
Yes!
Other than the advice people gave, you can also check out the iPhone Application Programming course on Open Courseware. But, I warn you, it's a 45h course.
Maybe you can spend a week or so to study the Wordpress source ...
I'm doing pretty much the same thing on OSX development. This is how I tackle it:
Buy relevant books. Amazon and SO provide with the right choices, then buy alot of them and see which one fits. I found that having a good book or two and occasionally reading them outside of your programming environment can really enforce you learning proces.
Work through at least one book, the others are for elaborating on what you have learned.
Start writing you app. This can even be after only a mere week of learning the SDK. Start with globally planning the thing, and dividing it in concrete to-do's. Consider every to-do a challenge and tackle accordingly. You will very quickly learn this way.
After a while your knowledge has expanded enough to reflect. When you just started writing the app, you inevitably made some mistakes. Now is the time to fix them and let your experience work its way.
And as previously mentioned, go nuts with google and SO. Of course, posting here proves your ability to use these tools properly. Above all, have fun.
It's possible.
Don't bother investing too many resources into books, especially if you want to save money. Stanford University have put up an excellent series of lectures for free from their iphone course that will get you up to speed with iPhone development, with a few assignments to do on the side (this is good because it offers some structure to your learning)
You can find this on iTunes (it might be reasonable to skip the 'introduction to objective-c' lectures if you're already familiar with the language)
Also it might be worth pointing out that if you want to develop an app on an iPx device you need to get a Developer License which will cost you a bit of money for membership. Although working off the simulator is completely free but doesn't replace trying your app out on a physical device.
ANother suggestions is to look for opesource projects and try to use them as your training exercise. Example:
http://sourceforge.net/projects/mtgr8-a3/
http://sourceforge.net/projects/mtgr8-jigsaw/
You can get a lot of help from iTunes U. Here is a very recent class which is packed full of useful information.
https://podcasts.apple.com/us/podcast/advanced-iphone-development-spring-2010/id407243032
There is also a class from Stanford University but I find it moves along slower, but it does cover a lot of material.
https://podcasts.apple.com/us/podcast/iphone-application-development-winter-2010/id384233225
If you search for "iPhone Application Development" on iTunes you will find other classes as well. I find that these classes, along with all of the available documentation and sample code from Apple, is a great way to learn Objective-C, Xcode and iPhone development.
3 months - full time - sure. Then the next year or so can be spent realising all the little things you did wrong and getting better. But don't let that hold you back, you can certainly do something functional in that time and it's the best way to learn.
I would not start with a book but use iTunes University. The first course available from Stanford was called CS193P Web Page (iTunes link) and it's a great place to start - seeing things done on video is easier for me than reading. More recent classes are also available though they do not publish every semester's class.
Are there any guidelines on pitfalls to avoid while developing iPhone applications?
Sure, thousands. The same is true for any software development. Unfortunately, the easiest way to enumerate them is to write them down on a sheet of paper while waiting for a friendly soul to release you from the one you just fell into.
However:
Don't try to reinvent the wheel. The iPhone API is very complete -- you just have to LOOK for the facility you need. Things are NOT always implemented the way you would expect. Read the guides, carefully. Look at the tutorials and analyze how they work. (Try changing a line here or there in the tutorial to see what difference the change makes.) The single biggest mistake I have made in 1 year of iPhone development is not trying hard enough to find the iPhone way of doing something.
Don't ignore memory management; master it early and often. Use the Object Allocation and Leaks tools in Instruments to check for memory leaks frequently. I'd recommend checking after you complete each feature or view; more often than that if you keep finding bugs. Eventually you may understand it so well you can stop doing this.
Don't just use the default build settings. Play around with them to understand what they do. Figure out certification and distribution. GET INTO THE DEVELOPER PROGRAM QUICKLY -- it can take a while to push through that pipeline. [ AND when you get that notification that you need to renew, get it on instantly -- there have been problems with that process. ]
Don't neglect to read the Human Interface Guidelines (HIG) carefully. If they say not to do something -- DON'T DO IT. Apple will reject applications that misuse their iconography.
Don't stint on marketing. Yes, the App Store puts your app in front of millions of people... In theory. But the odds of getting front-paged are slim. There are a lot of great apps on the App Store that haven't sold much because no one knows about them.
Don't rest on your laurels. If a new technology comes out, find out if it makes your job easier; if it does, take the time to learn it. Personal example: I'm just now trying to switch from SQLite-based data management to Core Data, because I was in a hurry at the time I started my most recent project; now I wish I had slowed down and thought about it.
Don't go into your design thinking (for example) "How do I implement my concept with a table view?" It's true that table views are natural for many informational and utility applications, but don't be constrained. Instead, think about what users will want to be able to do, how you can make it easier for them -- put things together that will be used together, etc. If you've never explored the concept of Use Cases, read up on them.
Don't hesitate to build composite views. Many of the questions I have seen here on Stack Overflow have to do with putting a toolbar at the top of a table, or having an image in the background of a text field. I understand the desire to do things the easy way, and as I state in #1 above, if there is an easy way, use it. But in many cases the solution is just to layer a couple of views with appropriate placement and transparency.
Think about what might be Apple-approved from the start.
App Rejected is one of several useful sites to help understand Apple's mostly undocumented standards. (One more.) (A previous question on app store rejection reasons.)
A few quick examples:
Using a UIWebView can get your app a 17+ rating.
Coding with an undocumented/private API = rejected
Version number < 1.0 might= rejected
Not enough feedback about network success/fail = rejected
Too much network use = rejected
Clearly limited free version vs full version = rejected
The word 'iPhone' in the app name = rejected
The above links contain many more examples, and more details about those examples.
Don't neglect the programming guides. While the documentation is quite extensive, the programming guides contains a veritable trove of useful tips and "insider" information that simply cannot be gleaned from reading method definitions. I spend just as much time reading the guides for a technology (say, Core Data) as I do actually implementing it.
Don't assume you know what a method does. If you have any degree of doubt about the functionality of a method, it is well worth your time to go look it up in the documentation to verify.
Wonderful examples from #Amagrammer above.
I would love to add that the first place to start is iPhone development is Photoshop. This is still the best advice I can give to anyone who is starting out. I now use OmniGraffle because it has awesome stencil templates.
What I find is that even for super simple app's, draw up your prototype and look for usability issues and work flow issues. It is 100x quicker to redraw your app than re-code it. I have fallen into this trap numerous times and now actually draw up some pretty simple functionality to see what it will look and feel like.
This advice will save you 10s maybe even 100s of hours in hopefully getting your app right first time and getting you to think through what the issues are. Throwing away code sucks and I have done it not because the code was bad but because it made the usability or solution worse. I think the best of us end up throwing code away and prototyping your design definitely will help in having to RTFM for something you did not have to build in the first place.
If you don't have an great designer, and can't do great design by yourself, then don't even start iPhone app development. This rule only applies if you want/need to make money with your apps.
I am thinking of going to the pragmatic studio iphone course, but am a little wary due to the price. I currently do contract work and therefore don't have a company that will pay the course costs for me, other than mine of course.
After travel, food, hotel and currency conversion the course runs up to over 3500.
Is it worth it?
I'm honestly not a fan of coding bootcamps or short duration courses in terms of cost/benefit.
If money wasn't an issue I would say go for it but since you are paying your own way and brought up the money aspect I'm going to assume that at least some consideration must be taken before dropping $3.5k.
I find that I can honestly absorb much more material and at greater depth by simply reading a book and attempting exercises or small projects myself. Certainly there are some tips & tricks that can be imparted to you through actual instruction that you might not glean right away from self-learning but those things won't be the bulk of the knowledge you have to learn.
These programs remind me of short duration certification bootcamps: expensive and of little substance. You have to be realistic, you are there for 4 days. You are going to learn how to setup the development environment, shown some canned examples that you follow along with illustrating the basics of the accelerometer, photos, and other iPhone basics.
Is that really worth it to you? To me, a serious professional developer would simply sit down with a few of the cocoa/iPhone books and start banging out some chapters on their time off.
So, in my opinion, save yourself some money and spend $90 bucks on some books and take a few days off work.
I hemmed and hawed about the BigNerd Ranch bootcamp and decided against it.
Classrooms are great, and you can really learn a lot, but I think I would benefit more from an advanced bootcamp for iPhone now vs one for newbies to the platform back them.
Knowing how stuff works makes it easier to learn how similar stuff works. Having a class on hardcore multi-threading, UI best practices, various networking patterns, and in-depth CoreAnimation...that is a bootcamp you could sell videos of, let alone pack to the rafters right now.
What I found was doing real projects and trying to make stuff teaches you far more than a classroom setting would, and faster. Get your hands dirty, and start making mistakes.
I personally have not been but I hear Bill Dudney is great. It sounds expensive but maybe you can right it off for tax purposes, that being said anytime you get a chance to learn something, it's probably worth it. If you think that you would like to make commercial iPhone apps, AND you think you can make at least $3500 dollars doing this, then I say go for it. If you think your just going to be doing this as a hobby or you think you'll make less than $3500 then I totally agree with Simucal.
P.S. Maybe you could write a tutorial on how to make iPhone apps after this. Also the networking section looks fun!