learning objective-c with Xcode? - objective-c

I am a PHP developer, and want to learn objective-c usage withing its well known IDE - XCode to start building IOS apps for iphone and then sell them on AppStore.
my questions are:
What's the best (and easiest) documentation to start with ?
Is it that easy for me (as a beginner objective-c developer) to attract customers on AppStore and get them to buy my IOS apps, or is there a huge competition among experts on AppStore so that there is no chance for beginners on AppStore?
If there is any chance to sell my apps on AppStore, what's the possible profit for them on AppStore ?
thanks in advance.

What's the best (and easiest) documentation to start with?
I found this link (for PHP programmers):
http://mohrt.blogspot.com/2008/10/objective-c-crash-course-for-php.html
Otherwise go with books, and use xCode and read code.
Learn Objective - C: (Programming Objective C 2.0) - http://www.amazon.com/Programming-Objective-C-2-0-Stephen-Kochan/dp/0321566157/ref=sr_1_1?ie=UTF8&qid=1298891453&sr=8-1
Learn iOS coding: (Big Nerd Ranch) http://www.amazon.com/iPhone-Programming-Ranch-Guide-Guides/dp/0321706242/ref=sr_1_1?ie=UTF8&s=books&qid=1298891484&sr=1-1
Is it that easy for me (as a beginner objective-c developer) to attract
customers on AppStore and get them to buy my IOS apps, or is there a huge
competition among experts on AppStore so that there is no chance for
beginners on AppStore?
If your idea is good and your app is well written sure. But there are a few competitors.
If there is any chance to sell my apps on AppStore, what's the possible profit for them on AppStore ?
There is no easy answer to your question here, but you will have a profit from apple with 70% of the product prize.
Good luck out there.

I have learned IOS programming using big nerd ranch guide. It is very nice, updated (this is important because the development environment keeps changing) has lots of good examples and most importantly teach you each concept by making you write the code itself. Following it throughly will result shortly.
Writing an attractive app is a different issue. But if you improve yourself in UI design a little bit, tackle the challenges of the mobile environment and provide functionality & stability to your app, you will have a chance to shine. But I do not like the idea of trying to create an app which profits well. Build an app with good quality and make people willing to support your work instead; profit should be a result, not the aim.

In response to your questions:
The best (and easiest) documentation to start with is definitely Big Nerd Ranch's Objective-C Programming for beginners. It may seem overwhelming at the beginning but if you're able to plug away at server side languages day after day then you will eventually grasp objective-c very well. Also recommend watching Stanford University's iOS videos on youtube in your down time to become more familiar with the terminology while learning the language.
It seems the app store is no different from doing a website Google search for results, so you may want to consider marketing initiatives to get your app up-voted in order to become recommended by others or possibly just grow your download numbers. This answer is purely subjective.
Depends purely on your marketing efforts to grow interest.

Related

How to distinguish flavors vs in app purchases

Ok this is more informative question than on a coding question. However this is a two part question.
When building the flavors for example an MP3 player.. you would have free and premium. I started designing a flavor app of an MP3 player to start learning Flavors and Build variants.
What i am trying to understand is when building the flavor is all of the design for the flavors built in Project then each flavor is specific. Premium features for Premium and free features for free. I understand that.
However what i am not understanding about the design is when i design my login with firebase how do i call the flavor thats appropriate. For testing purposes lets forget firebase. Here is an example:
MainActivity has two buttons. One will point to the free and the other paid. So if i press the free button do provide an intent that points to the flavor as this:
val i = Intent(......buildConfig.flavors.free)
Or would i place the package name in where the buildConfig would go. This is not actual code this is just an example.
Keep in mind i have never built a flavored app. So this is a learning point for me.
My original idea was have a free version as default with an in app purchase. You use the in app purchase and if the purchase is successful then the premium would take effect.. the only differences in the actual deaign would be those premium features are enabled.
So the first question would be: Is there really a difference between same design flavors versus in app purchases?
The second question is: when building a flavor app with the same design. Do you have to use flavors, example Free/paid, if the design never changes.
Like i said this is a learning process and all my apps on google play is just a flavorless app with adMob banner ad. So i an wanting to venture out to a more simple aspect than having two apps on google play one app for the free and another app for premium.
I think it would be easier to do flavors. However i have never done a flavored app and all the research i have done does not give clear instructions. They all stop after the gradel file implementation.
So any direction would help with is flavors a must or is it more headache to deal with in my case for learning purposes versus real world application.

Any feedback for Rhomobile (cross platform to build smartphones using Ruby)?

I've been trying to develop a cross platform mobile app, very simple one (DB driven), so I had to chose between PhoneGap, Appcelerator and Rhomobile.
I'm a big fan of Ruby and ROR, so using the same MVC structure and Ruby syntax is a big advantage for me.
Anyways I would like to ask few questions here if any of you guys used it already as it's a very risky decision specially that it is the least known framework among the mentioned above.
Do you know any solid smartphone App that used Rhomobile? this could give it more credibility. I don't wanna invest much time developing the solution then to get refused from apple appstore for some reason or to face any major problem in the production.
Did you notice any performance issues? specially with the UI? as it is not a purely native application (unlike RubyMotion or Objective-C) ?
Do you have any idea of the pricing? for commercial uses? is there any fees or is it totally free app?
Thanks in advance
I have been in the trend of developing RhoMobile applications since more than 2 years. In my opinion, i found this more powerful and stable than other frameworks.
Since you are a ROR/Ruby developer, it's will be lightning fast speed for you to catch the flow. you will not believe that most of the concepts of ROR are available in this framework.
Regarding your queries,
Do you know any solid smartphone App that used Rhomobile? this could give it more credibility. I don't wanna invest much time developing the solution then to get refused from apple appstore for some reason or to face any major problem in the production.
You will find no issue while deploying the app to stores if you just simply follow the basic flow as they have on there documentation. Although it's not as easy to check for the apps based upon the technology used, but this link may help you.
https://developer.motorolasolutions.com/thread/1736.
Did you notice any performance issues? specially with the UI? as it is not a purely native application (unlike RubyMotion or Objective-C) ?
All the Hybrid apps usually have a layer between you coding and the native api, which will any how take some few amount of reaction time, be it Rhomobile, Rhonegap or others.
But as per my experience, same performance degradation have been marked by me, than the native one for all the frameworks.
Do you have any idea of the pricing? for commercial uses? is there any fees or is it totally free app?
If you want to use only RhoMobile. Its free. But if you want to use some advance modules and some core modules, you need to have the RhoElement license for this, which is basically a paid one.
Hope these points help you deciding you best framework.

What programming language does Sony's PhyreEngine use?

I'm looking into developing a title for the next PlayStation (to be unveiled on Feb 20th) and PSVita to be distributed on the PlayStation Network. I know how to get in contact with Sony and all, but I haven't submitted my application yet (even though I have a pretty good portfolio) and I was hoping to use Sony's own PhyreEngine for development of the game.
I was wondering if any of you guys knew what programming language the engine uses or is based on? As I want to be well prepared for production of the game. Also, if there's anyone who reads this and has developed a PSN game before, do you have a rough outline of how much it'd cost? (Dev Kits, SDKs, licenses etc.)
Thanks
Harry
PhyreEngine itself is written in C++. The tools are primarily C#.
Can't tell you anything about costs in general, you'd have to get in touch through official channels for that info. PhyreEngine itself is free to any licensed developer though, it's just part of the SDK.
(disclosure - PhyreEngine is my project)
PhyreEngine is based on C++, with a possibility of a few low level C libraries.
This information is from a post in this forum: http://www.3dbuzz.com/forum/threads/181890-What-runs-on-a-PS3/page2, about halfway down the page. A poster asked the same questions you did.
Hope this helps!

ipad programming guidance

I'm just at the startup level in ipad/iphone programming. There is a project in my mind, but I need some guidance on key points:
fundemental requirements:
1)user interface and interaction like wired magazine app(playing movies on page,etc)
2)accessing the timeuser spent on pages and videos
more:
-accessing another application's data (and let's say that application can give permission, if there is so)
Maybe these are just easy things to figure out, but if you could point me where to look I would be pleased.
PS: I have more than 10+ top seller ebooks on ipad/ios/iphone programming and I'm started to reading them. To be clear, names of these concepts (in what way I should research accessing the time user spent on a page- I did try on google on my own words but could not get the desired result)or some material pointing the issues really ease my way.
The UI portion of your question should be pretty easy to get to, it will just take learning a lot of the Cocoa Touch library, probably even a bit of Core Foundation.
There are two books I highly recommend:
Programming iOS 4
iPhone Programming: Big Nerd Ranch
I strongly recommend Programming iOS 4, primarily because it has been updated for XCode 4.
To answer your other question: to the best of my knowledge, you are not allowed to access other application's data due to sandboxing. You can, however, share data between your own apps if they share the same App ID.
First, as to the question on sharing data between apps. You can pass data between apps - basically launching one app from another and passing arguments. This can go both ways. If this is what you want, I'll share more on that.
As to learning, I recommend devouring Apple's documents, their samples, and Stackoverflow. Most of the iPhone development books you come across on development will be useful.

What are the most valuable parts of Computer Science studies for Cocoa developers?

What are the most valuable parts of Computer Science studies for Cocoa developers?
Another way I might word this question is:
If I’m not going to go to school for Computer Science but want to be a developer working primarily with Cocoa, what are the things I should make sure I learn that I otherwise might miss by being self-taught, and be worse off for it.
Update: Replaced the term "professional Cocoa developer" with "developer primarily working with Cocoa", in hopes that the intent of my question is somehow clearer.
To be clear, I've been working with Cocoa for two years and am comfortable with Objective-C and the Cocoa frameworks, as well as Cocoa design patterns and the developer toolset, and thus am for the most part fluent with the Mac and iPhone platforms. But I have wondered whether I'm missing important CS or SE elements due to being self taught/no formal training, and not coming from other languages or platforms.
This question is for Cocoa developers.
There are many, but things that come to mind imediatly
-Design Patterns (the Cocoa framework relies on many Design Patterns, if you follow them it will make your life very easy, most obvious example is MVC)
-Algorithms and Data structures(this applies to any framework really)
-Memory Management (No garbage collection on the iphone!)
I would question whether there's really such a thing as a "professional Cocoa developer" (from a philosophical standpoint), or if you would want to be one. There's "professional developer", who may work with Cocoa primarily. A professional developer is language-agnostic and as such has a solid career ahead of him/her. A language- or platform-specific hacker has very limited usefulness.
The question to ask is do you want to be a developer or not? If there aren't any good Cocoa jobs available at the moment, or Cocoa is replaced by something newer and better and very different, a professional developer changes gears and follows. Are you OK with that?
If so, a computer science degree definitely cannot hurt. If not, you should probably not put all your eggs in the Cocoa basket and pursue a non-CS degree.
In addition to what's been pointed out already, I highly recommend reading "The Pragmatic Programmer". It contains a wealth of information on how to write software, how to manage projects, and how to develop your career, advice that goes well beyond the documentation you look at every day in Xcode. Some of the topics they cover are ones that you might have been exposed to during a standard computer science degree.
"Professional" is a relative term.. but anyways, this is what i had to go through so that i could easily learn a new language anytime i want and also master it:
started by learning a simple console language (pascal or c++, but i consider pascal being simpler than c/c++), then learned another language just to see if i can do it (c++)
i learned a lot of algorithms and data structures, until i was able to recreate them and even create my own
i moved to a visual approach on programming with Visual Basic 6 (another simple one to start with), and tried to copy lots of apps just to see if i can do it
i learned about Object-Oriented Programming and finished by mastering it
from this step on, learning a new language was like a hobby, like playing!
then i wanted to learn some different topics, like design patterns, multithreading, and so on..
moved from windows to mac, and started learning objective-c: because i already knew lots of languages, it took me 5 days to learn objective-c, and yes, i took breaks like any human being :P
after i learned obj-c, i now had to learn cocoa... this one took me a lot of time to learn, and i still don't know it all.. but i do know most of it :D
What are the most valuable parts of Computer Science studies for Cocoa developers?
Learn that it's important to understand the differences between languages, not learning a particular language.
Are you writing numerical method solvers with a Cocoa frontend? You'll want to take numerical methods. Writing a 3-D plugin with a Cocoa UI? Better learn about Catmull-Rom splines.
A good understanding of computer graphics is required if you want to make some good looking animations :)