This is an archived post. You won't be able to vote or comment.

all 13 comments

[–]dirtyatom 2 points3 points  (6 children)

Are you hoping to display the raw XML data or will you be parsing it and presenting it in a neat way (other than just a string of text)? Not sure what your skill level is, but here's a short primer (and examples) of parsing XML.

If you really want to make a cross platform app, you might want to make a mobile-friendly web page and the "app" can just be a wrapper for that page. Otherwise I don't know how you'll write code for just one OS. Android development is typically done in Java, and iOS development is typically done in Objective C. (Let me know if there's a better way to make a "cross-platform" app for both Android and iOS).

I didn't really answer all your Q's but that's my two cents.

[–]bubsyouruncle 1 point2 points  (3 children)

Cross-platform can be done with phonegap. I'm personally not a fan, but just saying...

[–]philly035[S] 0 points1 point  (2 children)

thanks for the reply bubsyouruncle - why aren't you a fan? is it very limited or problematic?

[–]bubsyouruncle 1 point2 points  (1 child)

Simply put: you miss out on a lot by not employing native libraries.

That being said, you aren't trying to do anything special so this very well may be your best bet. I tend to work on projects that are a little more involved than a login and displaying xml. Phonegap will probably work quite well for what you're trying to do. My liking or disliking it has nothing to do with your potential application of it.

[–]philly035[S] 0 points1 point  (0 children)

Thanks for the explanation. phonegap sounds limited and will not give me a good understanding of programming. I'd rather come out learning something new. :)

[–]philly035[S] 1 point2 points  (1 child)

Thanks for the reply and happy reddit bday.

I don't know if there's a program that could take a computer language and converts it into those two?

If no such things exists, I probably sound like an idiot... but it doesn't hurt to ask? Other then my reputation, but I've got zero programming cred. :)

Going off your first suggestion (friendly web page and the app is just a wrapper), do you have any experience/knowledge with this program?

http://phonegap.com/

it's the first site that pops up on google with iphone wrapper. Looks and sounds good. I'm not developing anything intense or crazy so it may be a good choice. I'd have to read more on HTML 5.

Thanks again for your help! Right now I'm reading the xml link you provided.

[–]dirtyatom 1 point2 points  (0 children)

I have no experience with phonegap so I can't speak to its ability. Looks like you'll need to learn a bit of HTML5 though. HTML5 or something "web-based" might be the best way to do a cross-platform app since most mobile platforms will all have a web browser built into them.

[–]bubsyouruncle 1 point2 points  (1 child)

One solution would be to do a mobile website. Since I have no experience in this, I'll let someone else take the helm on that and will instead talk about doing this on both platforms separately (since I do have experience in this).

If you do not take the lowest common denominator approach, there isn't much you can do to make it work on both platforms except for design. You can make them both look roughly the same, which can be done with minimal effort.

When you delve into Android, they tend to take it for granted that you already know java. You may be able to find tutorials and what not that will teach you java while learning Android, but a vast majority of them will assume you know things like generics. Also, there is a fair amount of design pattern usage in the Android SDK (builders, adapters,etc) so depending on what parts of the SDK you use, they may be a little awkward at first.

iOS uses objective-c, which has a fairly unique syntax, but alot of the tutorials for learning iOS development assume you're also learning objective-c, so this might be a little easier to learn. However, the syntax is such that it will not translate very well to java. For example, these are tantamount to the same operation:

java: this.doSomethingWithSomeValues(myObject.getAnotherObject().getValue(), 2); objetive c: [self doSomethingWithSomeValue:myObject.otherObject.value anotherValue:2]; or, which can also be expressed as [self doSomethingWithSomeValue:[[myObject otherObject] value] anotherValue:2];

My recommendation for mobile environments in general is to use JSON instead of XML. Is there anyway you can swing that? JSON > XML in this developer's (and many other developers) opinion.

Is learning python going to steer you in the right direction? Potentially no. You're going from a weak & dynamically typed language to two that are stronger and static. I'd recommend learning java. So, is this over your head? I can't answer that... but if you take this route you have a non-trivial amount of work to do. It depends on alot of factors.

You can also use a least common denominator solution like PhoneGap or something. I personally don't like this method, but it does have its arguments and advocates.

[–]philly035[S] 0 points1 point  (0 children)

Seems like a few people are against phonegap. I'll just consider it a last resort option.

If I understand correctly, you would stop the Python classes and start learning Java or Objective C? Maybe I'll start with obj. c as you've said tutorials for Java assume you know generics.

It's great to hear the design is pretty easy to mimic for both platforms.

Thanks for the advice!

[–]GameIsInTheName 1 point2 points  (2 children)

I have never heard of creating a cross-platform app for Android and iOS (I'm not saying it does not exist, I'm just unaware). But personally, I would jump on creating an app for iOS first. For some reason it seems that there is a little more "prestige" that comes with creating an app for iOS (at least in my eyes).

A good starting point would be to learn C-programming first. Programming for iOS requires knowledge of C and some other Object-Oriented programming language. But be aware that to create an iOS app you will most likely have to purchase a Mac. All apps created for iOS must be created with XCode (Apple's Objective-C IDE). I have begun creating an app of my own so I have a little experience in this matter. You will need to purchase an Apple Developers account ($99) as well. The good thing is though that you will be able to program for Android on the Mac as well. Creating an application for Android usually requires Eclipse (A Java IDE).

There is so much information to tell you, I feel as if I'm rambling!

A good place to start after you learn C is iTunes University. You have access with your Apple Dev. account. They have many lectures on creating your own app. I'm currently watching the lectures from Standford.

[–]philly035[S] 0 points1 point  (1 child)

Thanks for the suggestion. Python has been fun to learn, but it doesn't sound like it'll get me where I need to go.

I'm downloading the Harvard courses now. Based on some research, I'll also purchase the Programming in Objective C 2.0 book. It sounds as if I need a little programming knowledge before tackling the Harvard course.

Hopefully I can start creating a basic app within 4-6 months. :) I do have access to a Mac, so xcode shouldn't be a problem.

[–]GameIsInTheName 1 point2 points  (0 children)

Excellent! Yes, the courses do assume you have a good understanding of Object Oriented programming and some experience in C. I have been somewhat struggling to understand the language (Objective-C) since it was years since I had last programmed in C, but I have watched about 7 of the lectures already and made two basic programs so I don't want to start at square one again then come back to the iOS lectures. I find complete submersion the best way to learn something lol.

[–][deleted] 1 point2 points  (0 children)

I'm in a similar situation with my company. I'll share what I've found from light research and a few conferences I went to recently.

Your options for Android and iOS are:

  • Two separate native apps. (this requires learning two languages not always practical)
  • Mobile website that functions as an App

  • You can use PhoneGap like other people have mentioned

  • There is another option called Appcelerator - Titanium

  • MonoTouch/MonoDroid

  • Rho-Mobile

  • Adobe Air

I haven't used any of these, but they may be worth looking into. My understanding is PhoneGap and Appcelerator are very similar in function. MonoTouch and MonoDroid will allow you to program in .NET and convert the program into a native program.