learning x-code .. need advice !

Discussion in 'iOS Programming' started by rashidyn, Apr 20, 2013.

  1. rashidyn macrumors newbie

    Joined:
    Apr 20, 2013
    #1
    hey!
    i am very interested in entering the developing world .. so it's necessary to learn programming .. i've never learned programming before and i have no idea about it .. but nothing is impossible and i want to learn it .. and here are some details that may help u help me :D

    1. i have an iphone 3gs old-bootrom and an iphone 5 but the 3gs is available most of time
    2. i am on windows 8 and i don't own any mac system and i think i won't own one for the recent time
    3. i'm very interested in developing jailbreak tweaks much more than app store apps

    so what i need help in is :

    1. what kind of language should i learn ?! .. and where to start from and how to take the road on ?!
    2. what courses do you advice me to have ?! giving me the perfect way to grow in this field ..
    3. what is the average learning period needed before i begin to develop my first tweak ?! and what is the period needed to be an expert in this field ?!


    thanks in advance :)
     
  2. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #2
    First off, I suggest you get a real OS to program on: OS X, Linux, or Unix. Windows was not made with being beginning programmer friendly in mind.

    I suggest learning C as your first language. Most languages currently in use are either derivatives of or heavily based on C.

    There's a free HTML version of Learn C the Hard Way. It's a pretty good resource for learning C. Chapter 0 of it will explain everything you need to know, including (I think) a bit about installing Linux on a computer with Windows.
     
  3. ChristianJapan, Apr 20, 2013
    Last edited: Apr 21, 2013

    ChristianJapan macrumors 601

    ChristianJapan

    Joined:
    May 10, 2010
    Location:
    日本
    #3
    If you are on Win 8 and never programmed before it might be a good idea to download the free version of Visual Studio from MS and start with Visual Basic.

    First learning about basic principles of programming language like variables, simple arithmetics and decision making etc. The interpreter character of VB supports quick learning of those basics.

    But soon (agree with ArtOfWarfare) you need to start learning C; you can use the same Win 8 environment; just a different compiler. At that point in time you could also switch to OS X or Linux.
    XCode only run on Mac OSX (hackintosh ?)

    Oh, and another suggestion (maybe not welcomed): don't waste your energy on JB tweaks; learn solid programming skills, how to use database, graphical design of UI etc. That is something you can build a career on. It pay off in the long run.
     
  4. rashidyn, Apr 21, 2013
    Last edited: Apr 21, 2013

    rashidyn thread starter macrumors newbie

    Joined:
    Apr 20, 2013
    #4
    one thing i forgot to say that i'm kind of busy until the middle of june or around that .. so i think it's a good idea to begin with some basics until that time .. then begin learning the real stuff ..
    thanks for ur help and waiting for ur opinion :)

    i totally agree with u about beginning with some basics for the reason above .. then i'll begin to learn the C (i'm interested in knowing how much time does that take) .. so do i download 2012 or 2010 version ? and is learning about the 2010 version enough ?! ( i found a useful course on a great site on the 2010 version :D ) .. and if not .. i need ur advice for the useful course for me

    for the hackintosh .. i have no problem with that .. but my pc now hardly run windows 8 alone :D .. so i'll wait until the beginning of july as i'm going to buy a new laptop with high specs ( not a mac for many reasons ) .. and i don't think i need it before i begin learning C which is around the same time ..

    & about ur suggestion ( always welcomed :) ) .. i'm very interested to know why do you think jb tweaks is a waste of time or energy ? .. i think these years jailbreak tweaks are more functional than ordinary apps ( i have more cydia tweaks than ordinary apps on my 3gs ) .. tweaks gives you more functionality for ur idevice without having to open an app or something like that .. also other thing i prefer tweaks for that it may offer a fix to a bad function to ios or may bring a whole new function to the ios ..

    & does app store apps and jailbreak tweaks use the same language or coding program or they're pretty different ?!

    thanks for ur help and waiting for ur opinion :)
     
  5. ChristianJapan macrumors 601

    ChristianJapan

    Joined:
    May 10, 2010
    Location:
    日本
    #5
    Any version will do it in your case, VS 2010 or 2012 ... as you will start learning the version is not that important.

    Why not get an Apple ? Or a Windows Laptop with less high spec and a Mac Mini (even second hand will do). XCode is free ... To create an app for a physical device you need membership in Apples Developer Program ($99 annual). For JB that's not required I think.

    I don't have any practical experience with JB tweak development but my guess is the language is the same. What will be different is that apps for the AppStore can't use undocumented functionality from iOS (if Apple find out your app get removed). Which will add a bit complexity to ensure stability eventually.

    As for JB itself: not my business. I enjoy to install always the latest iOS which is more difficult with JB. Plus not so much functionality I miss. But that's just me
     
  6. rashidyn thread starter macrumors newbie

    Joined:
    Apr 20, 2013
    #6
    it's not about money .. but i have iphone & i'm gonna buy an ipad .. so i think that's enough for apple + i like windows 8 and i think microsoft will get more powerful functions in future windows versions .
    and if hackintosh is available so i don't need a mac .. but i think that i must have an intel processor ?!
    so i will begin learning visual studio .. then after that i'll learn the C language from the beginning of july .. after that what i'm supposed to do ?! will i be able to start my first app (or tweak ) ?! or there are more steps before that ?!
     
  7. dejo Moderator

    dejo

    Staff Member

    Joined:
    Sep 2, 2004
    Location:
    The Centennial State
    #7
    First, I think it's important that you understand the distinction between Xcode, which is an IDE, and programming languages, such as Objective-C, C, C++, and Java. If you are writing apps for iOS or OS X, you will probably be using Xcode to do it and needing to learn it, but just be careful to not think of it as a programming language. Hope that helps.
     
  8. rashidyn thread starter macrumors newbie

    Joined:
    Apr 20, 2013
    #8
    so what i understood from ur words that after i learn the C language i have to learn X-code as itself ?! or i can learn x-code without learning the C language ?
    pretty confused :D
     
  9. dejo Moderator

    dejo

    Staff Member

    Joined:
    Sep 2, 2004
    Location:
    The Centennial State
    #9
    First, answer me this: What do you think Xcode is?
     
  10. rashidyn thread starter macrumors newbie

    Joined:
    Apr 20, 2013
    #10
    a program that i write in some codes to produce an app or tweak ?!
     
  11. dejo Moderator

    dejo

    Staff Member

    Joined:
    Sep 2, 2004
    Location:
    The Centennial State
    #11
    Alright. Given that...

    You can learn Xcode at the same time as learning C (it can help you write and compile C code), or you can learn C first and then learn Xcode after. And you can learn Xcode without learning C, for example, by using it to learn Objective-C. Since Xcode is just a tool for developing, you will probably find that you will be learning it at the same time as you learn a programming language.
     
  12. rashidyn thread starter macrumors newbie

    Joined:
    Apr 20, 2013
    #12
    so you mean that learning C language only is a helping method of X-code or vice versa ?!
     
  13. rashidyn thread starter macrumors newbie

    Joined:
    Apr 20, 2013
    #13
    just to make the whole thing clear .. can you give steps i do from now to achieve my goal with time interval for each step ?! .. what do i start with and so on ... :)
     
  14. dejo Moderator

    dejo

    Staff Member

    Joined:
    Sep 2, 2004
    Location:
    The Centennial State
    #14
    I mean that Xcode can help you as you learn C, since it's a tool, but you don't have to use it. You could just as well learn C by writing code using a simple text editor and the command-line.

    Think of it this way: I want to learn to speak French. Do I need to learn Rosetta Stone in order to do so? No, I don't. There are other tools at my disposal that would help me learn French (for example, podcasts or Berlitz classes). But, would Rosetta Stone help me with my goal to learn French? Probably. And once I've learned French using Rosetta Stone, it would probably be easier for me to learn another language, say, Spanish, with it, because I'm already familiar with the Rosetta Stone "methodology".

    No, I can't give you the steps, and especially not the time intervals for each step, because everybody learns somewhat differently and at different paces. Without knowing a whole lot more about you as a student and what your skills and talents are, any answer I could give would just be a huge guess.
     
  15. Duncan C macrumors 6502a

    Duncan C

    Joined:
    Jan 21, 2008
    Location:
    Northern Virginia
    #15
    Clear, complete answer

    Lots of back-and-forth here, and not a lot of clarity.

    Assuming you want to develop apps for the app store, you must develop on a computer running Mac OS, and running Xcode.

    In order to upload Apps to the app store you need to pay $99(US)/year to be part of the licensed developer program.

    Part of that agreement is that you agree not to violate Apple's license agreements. A Hackintosh is a violation of Apple's copyright, and therefore a violation of the developer agreement. You can PROBABLY get away with it, but if you get caught, you will likely be banned from the developer program for life.

    The iOS operating system is written in C and Objective C, with a little C++ here and there. The vast majority of their public APIs are Objective C.

    It is possible to write iOS programs in C++, but you end up needing some Objective C "glue" code in order to interface with the OS.

    Overall, if you don't have a strong bias, you're probably better off learning C and Objective C and developing in Objective C.

    Apple provides their excellent Xcode IDE (Integrated Development Environment) for free, and as part of their $99 developer program. It includes an integrated editor, compiler, linker, debugger, resource editor, and a variety of other tools you need to develop iOS apps. Xcode is able to work with compilers for a wide variety of languages including, but not limited to, C, Objective C, C++, and Java. Some people have added compilers for PASCAL, Fortran, and other languages.

    If you wan to learn to develop apps for iOS, you will have to learn a number of different but related skills:

    You will need to learn C and Objective C
    You will need to learn to use Xcode
    You will need to Learn the iOS application frameworks.

    For the first one, the book "Objective-C Programming The Big Nerd Ranch Guide" by Aaron Hillegass would be a good choice. It teaches you C and Objective C assuming no prior programming experience.


     
  16. rashidyn thread starter macrumors newbie

    Joined:
    Apr 20, 2013
    #16
    i'm very interested in having a chat with you .. do you mind ?! ( whatsapp-facebook-massenger anything you want )

    ----------

    huge thanks for ur help .. and i will have a look at this book soon :) .. and i'm interested to know if the same agreement is applied on cydia tweaks ?! .. do i have to pay the 99$ to develop a tweak and submit it to cydia .. and does a hackintosh prevents me to deal with cydia as a developer ?! .. very interested to know ur answers :)
     
  17. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #17
    No, but you should know that nobody is on Cydia for the money, because the money isn't there. They're there because they love hacking and programming and they're okay with the fact that they're not going to be making as money as they could by writing programs that they can distribute through the iOS app store.

    Last I checked, Cydia is pretty lawless and you can sell whatever you want through it.
     
  18. charmofmaking macrumors member

    Joined:
    Feb 2, 2013
    #18
    Great post there Duncan C - should be added to the 'sticky' how do i get started thread.

    Aaron's Big Nerd Ranch book is indeed a solid starting point, very easy to follow.


     
  19. Duncan C macrumors 6502a

    Duncan C

    Joined:
    Jan 21, 2008
    Location:
    Northern Virginia
    #19
    No. Those rules are imposed by Apple. Apple wishes cydia, and the whole jailbreaking community, would die.

    The cydia community is a much different beast. I haven't spent any effort learning about it. This forum is also not oriented towards jailbroken development. You may want to do some googling and find another site for help with that.
     
  20. rashidyn thread starter macrumors newbie

    Joined:
    Apr 20, 2013
    #20
    so i think that developing tweaks should be a great exercise before developing app store apps .. knowing the reactions of customers on my tweaks will give me the advice if i should enter the app store with the annual fee or not .. what's ur opinions ?!

    also i have a question .. there's a mac in my house but i can't use it frequently cause it's not mine .. so if i wholly developed my app on a hackintosh then when i finish it just copy the codes and finish it on a real mac .. what's the situation then .. will i be legal with apple's agreement or it's the same situation if i finished it on a hackintosh ?!
     
  21. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #21
    The hackintosh itself is illegal. I don't see any reason Apple would really care whether you make or upload the app from a real Mac or not. Also, code is nothing more than plain text. There's no need to code on any particular platform.

    Have you actually tried doing anything yet? Have you so much as written hello world in any language? You're getting way ahead of yourself talking about this stuff if you've done absolutely nothing so far.
     
  22. rashidyn thread starter macrumors newbie

    Joined:
    Apr 20, 2013
    #22
    i have already begun to read the book many people advised me of .. also i downloaded a video course of visual studio and downloaded the program itself but i didn't begin with them yet
     
  23. xArtx macrumors 6502a

    Joined:
    Mar 30, 2012
    #23
    In that case MS Visual Studio is the Development Environment (Xcode),
    and Visual C++ is the language.
    One of the things Xcode does for you which you should easily understand right now
    is check for spelling errors in real time like MS Word does as you type.

    If you start with MS VS, I would advise aiming for writing something like
    a ball that bounces around the screen like the DVD logo on your DVD player's
    screensaver demo.

    Or basically, any program that does something cyclic, and never ends.
     
  24. dejo Moderator

    dejo

    Staff Member

    Joined:
    Sep 2, 2004
    Location:
    The Centennial State
    #24
    Without having the ability to run Xcode, that book (I'm assuming you mean "Objective-C Programming: The Big Nerd Ranch Guide") will be of very limited help.

    What programming language are you planning on learning first?
     
  25. rashidyn thread starter macrumors newbie

    Joined:
    Apr 20, 2013
    #25
    i think you are the one who should answer me not ask me !! :) .. but my plan is to learn how to use visual studio ( having an idea only ) .. then when i am able to run a hackintosh ( in about 2 months ) i will learn c language along with using x code .. and about the book .. i am reading it to have an idea about x code and c language and will read it again when i get them :)
     

Share This Page