Need to make very simple iPhone app -> list with search

Discussion in 'iOS Programming' started by macintologist, Nov 4, 2010.

  1. macintologist, Nov 4, 2010
    Last edited: Nov 4, 2010

    macintologist macrumors 6502

    Joined:
    May 3, 2004
    #1
    The organization I work for wants to make a very simple iPhone app for internal uses. It's very simple. It's like a list of contacts, but even simpler.

    1) A dictionary database with approx. 200 terms and their accompanying definitions. So I would need a simple database with two fields - a) term b) definition. The database would be hard coded into the app and any updates to the database would be hard coded as well to facilitate easy offline use.

    2) The iPhone app would list all the terms at once, much like the iPhone Contacts app. The user could scroll and tap on the term they wanted which would slide over and reveal the definition, again like the Contacts app. A search box at the top would allow the user to begin entering the term they wanted and the list would dynamically shrink to match the letters the user entered. So if the user started typing in "com" the hypothetical words "combine" and "commune" would be the only two remaining listed. Again, the user would tap on the term they wanted and it would slide over and reveal the definition, with a back button to go back.

    I have strong HTML and CSS skills. I took an intro java course a year ago in college and I'm learning Google App Engine (python and soon some javascript) in a class right now. I know all the basics like methods and objects. I could probably teach myself whatever javascript I needed to learn to do this as a web app, right? I don't have any PHP or MySQL experience at all. Is objective-C too difficult to pick up from intro java to write an iPhone app?

    Should I try to take some iPhone tutorials and see if I can code this out as a native iPhone app? Or should I make this a web app and wrap it with PhoneGap? Or is this such a simple functionality that there are preexisting code templates already?

    Is this something that is attainable for me to do?
     
  2. dejo Moderator

    dejo

    Staff Member

    Joined:
    Sep 2, 2004
    Location:
    The Centennial State
    #2
    It could be done with Javascript as a web app or it could be done as a native iOS app. Your Intro to Java will help you to understand the OOP aspects of Objective-C but you may find the syntax strange and will need to pay close attention to memory management.

    Sure, try some tutorials. It's worth a shot, isn't it? That should at least start to give you a feel for how comfortable you will become or if you just want to stick with a web app. Actually, I believe there is a sample app in the iOS Dev Center that is pretty close to what you're asking for, in terms of table search, called, appropriately, TableSearch. The rest sounds like a simple drilldown or master/detail app.

    Probably, if you have the determination.
     
  3. chown33 macrumors 604

    Joined:
    Aug 9, 2009
    #3
    You could write code in Java, then deploy as a JavaScript web app by using Google Web Toolkit to translate:
    http://code.google.com/webtoolkit/

    I've also used pieces from the Yahoo UI Library:
    http://en.wikipedia.org/wiki/Yahoo!_UI_Library

    YUI is more directly JavaScripty, so you'll need to have a decent grasp on that language.

    There are a zillion other web-app frameworks that might also work to simplify the coding of this as a web app.

    A principal reason for using any web-app AJAXy framework is you won't have to worry about memory management. That's one of the biggest obstacles for beginners, and in some ways it's worse if you have experience in languages where automatic memory mgmt is the norm, like Java. It's not just about creating the code. A lot of time is spent in debugging, too, especially when one isn't experienced in a language. The debugging tools and skills can be more significant than issues like unfamiliar syntax.

    More generally, "error avoidance-and-correction tools and skills" is what matters. This includes things like intrinsic support for preventing or avoiding sources of error, such as memory management mistakes. So the more you can work in an environment that avoids errors, prevents errors, or expedites finding errors, the more likely you'll be able to produce a working product without having to become an expert in things not directly related to solving the problem.

    As a simple example of preventing errors, C will automatically do conversions between float, double, long, int etc. operands when doing arithmetic. In assembly language, you have to do all this yourself, and if you forget a conversion, you get a garbage arithmetic result.
     

Share This Page