1. Download our Official Android App: Forums for Android!

Apps Trying to know what I don't know, I don't know for a new app.

Discussion in 'Android Development' started by cws3e, Jan 31, 2014.

  1. cws3e

    cws3e Lurker
    Thread Starter
    Rank:
    None
    Points:
    25
    Posts:
    6
    Joined:
    Jun 2, 2012

    Jun 2, 2012
    6
    0
    25
    I've only been learning about app development for about a month (and only been coding for a little longer than that). I'm wanting to build an app, that I can best describe as an app for learning. I'm starting to envision what it will look like and what it will do and I would love some advice on what terms/concepts I should be googling and/or trying to learn about. It can be tough to get started when you know you need to learn stuff but you don't know what you should be learning :)

    The short version of what I see as the main features of the app and the things I think I need to learn are below. Am I on the right track? Anything else I should probably be thinking about?


    1. A GUI that would be mostly static and always present. This GUI would frame changing content. It would be nice if I could only write this code once and not have to replicate it in 1000 different activities.

    2. The content will appear as mostly text but may have the occasional figure. I envison the user would respond to the text via an input field, which could be a text box or something more like radio buttons. The app would then evalute the response and give feedback. The user would then select a next button or something similar on the interface and new text would be presented. This process might repeat 1000 times. I was thinking it might be best to use a database (I know nothing about databases) to store the questions/answers/feedback. Does this sound right? Or is there a better way? It would be nice if I could update the content displayed to the user without having to ask the user to update the entire app. Thoughts on what I should be looking into to do that?


    Feel free to treat me like I don't know anything, because it probably isn't too far from the truth!
     

    Advertisement

  2. Rukbat

    Rukbat Android Expert
    Rank:
    None
    Points:
    843
    Posts:
    10,392
    Joined:
    Jan 16, 2012

    Jan 16, 2012
    10,392
    2,894
    843
    Male
    Being retired and writing Tasker tasks.
    Fayetteville, NC, USA
    "Learning", "education", "psychology".

    Oops. You're starting at the wrong end. Write the program first. What does it do? What does it do next? If if gets this response, what does it do? That's how you "write" a program - in English.

    Writing a GUI first is playing at app development. It's why 90% of the sites on the web look pretty at first glance but don't actually work. You expand the screen because you can't see so well, and you're scrolling madly back and forth across the screen. (That's not even "so 90s", because we had reflow long before the 90s.) But the GUI is nice.

    Would you rather marry a pig in a gold lame gown or a beautiful woman who's a great cook, loves you madly but wears jeans?

    If you can't lay out the steps (all of them, and from the smallest to the largest), you can't write a program to do those steps, so you're not doing anything but building a pretty GUI that's useless.

    Forget the language (the same "program" can be coded into any computer language with just about no change), forget the GUI (you don't know what's going to be on it until you've written the program) - about all you have to be aware of when you're writing it - and only minimally - is the environment. You can't search tracks on the hard drive because there is no hard drive in an Android device. But you can track the cursor (in this case it's the "finger cursor", not the "mouse cursor", so the program doesn't have to be aware of what the hardware is through most of it.

    The first time I had to write an accounting program (a full, large, multi-national corporation accounting package), the first thing I told the CEO was that I didn't have an accounting degree and if he wanted a program that did what the real world required, he was going to have to get me a month or two with the CFO of the company to give me a quick course in how accounting is done. If you don't know how to do it, you can't tell a computer how to do it. I spent two months writing not one single line of code. But I was writing parts of the program every day.

    So if you're going to write a teaching app, learn how teaching is done. Learn enough to be a teacher. Because your app won't be a better teacher than you are.

    It's not time to start writing a program until you completely understand the subject the program is about. It's not time to start coding until you have the whole program written. And it's not time to look at the GUI until then either. You can do the GUI before or after coding, but if you do it before coding, you might have to change it later, because in coding you realized that you couldn't do it this way, you have to do it that way, and that changes the GUI.

    But doing the GUI first? It's an interface to ... nothing, because you haven't written anything yet. Yet much to the detriment of almost everynone, that's how most apps are created. Pretty GUI, some code, then figure out how to paste it together to do something like what the developer thought he had in mind - but do it all wrong.
     
  3. cws3e

    cws3e Lurker
    Thread Starter
    Rank:
    None
    Points:
    25
    Posts:
    6
    Joined:
    Jun 2, 2012

    Jun 2, 2012
    6
    0
    25
    I get your point, but I think you misunderstood my intentions.

    I have 10 years of experience teaching Chemistry at top 5 Universities and have won several awards in the process, so between you and me I've go the teaching part down.

    The point of the post wasn't about GUI's the point of the post was I have a process I need to repeat many, many times (33,000 by my last estimate). So I need to determine the most efficient way to store, retrieve and compare the displayed information with user input. As there are sure to be mistakes in the information and many corrections will initially be needed it would be nice if that information was stored elsewhere and the app just accessed it, so that the app doesn't have to be updated everytime a user runs it. Really I was looking for was some key words so I could go off and google them or read a book or what have you. To learn about the topic.

    I won't even put fingers to keyboard until I have my project plan in place. That's how you end up with wasted time and gold plating and nothing pisses me off quite like unneeded features. And seeing as the project will need a GUI, yes that will be included in the plan. So I haven't started anywhere yet. I'm very much still in the fact finding stage, determing project scope, talking to stake holders etc.

    And yes, I agree there are a lot of crap websites out there, but that's mostly because people seem to beleive that any old sod can do web design, unfortunatly that seems to be doubly so for the companies doing the hiring. Knowing HTML/CSS does not make you an expert in usabilty and design principles.
     

Share This Page

Loading...