Corona suitability for school project

Hi,

I have a project for school where we are supposed to create a mobile app that is useful to students.  My group’s idea was to create an app where you select a building on campus, then select a classroom you want to find.  The app uses GPS to determine which entrance to the building you are closest to, then circles that entrance and the room you are looking for on a picture of the layout of the building (we have some confusing buildings with tons of entrances on campus).  So, I need the following features that I’m not sure have a straightforward way to implement after looking through the Corona API reference:

-X- and Y-scrollable background image (I was originally going to have it be zoomable also, but I think this would make things a lot harder) that I can draw shapes on.  The shapes need to track the part of the image they are on during scrolling. Scrolling should be accomplished by dragging across the screen.  
-A GUI widget that is suitable for holding, browsing, and selecting from a large alphabetized list (for selecting the classroom).

So my question is, do you think it would be relatively simple to create this app in Corona?  As in, could a total beginner learn to do it in three weeks (with a lot of time to devote to it)?  For my background I have some programming experience in Java, C/C++, Python, and Visual Basic .NET, but not Lua.  The other option I’m considering is trying to use the Android SDK and Android Studio, which I have used to create some little baby apps before but never something this involved.  I feel like using Corona would probably be easier, but I want to get some knowledgeable feedback on it before I devote a lot of time either way.

Thanks for any advice!

I think you can make this in Corona.  I know how I would make it anyways.

The only wrinkle I can think of is:  GPS precision.

If the GPS on your device is not precise or if you’re not in LOS of enough satellites, your GPS position precision may not be good enough.

So, if two or more doors are too near to each other, you may not be able to clearly distinguish which door is associated with the GPS postition.

This is not a Corona issue.

You can draw your map using display.newImageRect() and insert it into a display.newGroup(). Then you can draw your symbols and then use various pinch-zoom/scroll methods to move the map.

You can use a Lua table to hold the list of buildings, and GPS coordinates needed and then use a widget.newTableView() to display the table of data.  See this sample https://github.com/coronalabs-samples/CoronaWeather

It has an example of a searchable list of cities that displays in a tableView.  

Depending on how ambitious you get, you could consider setting up paths and uses a pathfinding method like A* to provide walking directions, but to get that done in three weeks is asking a lot. Three weeks may be a tight schedule anyway, but you will be more likely to hit that goal with Corona/Lua than trying to figure out how to do things in native Android. And your students with iPhones can also get your app with Corona!

Rob

Thanks for the feedback!  I was super depressed last week and hardly got anything done so now I’ve got a little over 2 weeks, but based on your posts I’m going to give creating my app in Corona a go.  The GPS issue is no biggie - I will consider entrances close to each other to be the same entrance, and even if it’s occasionally wrong it is unlikely to affect our grade.  I was also considering pathfinding, but I know nothing about it (I mean, I can code a shortest-path algorithm for a graph, but that’s all) so I decided it would probably be a bit much to attempt.  The main building also has a ton of rooms and hallways, so I imagine this would be a bit of a pain to do whatever annotation (marking where paths are, which direction they run, what rooms are off of them etc.) is required. Maybe I will improve the app with pathfinding capabilities on my own time later.

I think you can make this in Corona.  I know how I would make it anyways.

The only wrinkle I can think of is:  GPS precision.

If the GPS on your device is not precise or if you’re not in LOS of enough satellites, your GPS position precision may not be good enough.

So, if two or more doors are too near to each other, you may not be able to clearly distinguish which door is associated with the GPS postition.

This is not a Corona issue.

You can draw your map using display.newImageRect() and insert it into a display.newGroup(). Then you can draw your symbols and then use various pinch-zoom/scroll methods to move the map.

You can use a Lua table to hold the list of buildings, and GPS coordinates needed and then use a widget.newTableView() to display the table of data.  See this sample https://github.com/coronalabs-samples/CoronaWeather

It has an example of a searchable list of cities that displays in a tableView.  

Depending on how ambitious you get, you could consider setting up paths and uses a pathfinding method like A* to provide walking directions, but to get that done in three weeks is asking a lot. Three weeks may be a tight schedule anyway, but you will be more likely to hit that goal with Corona/Lua than trying to figure out how to do things in native Android. And your students with iPhones can also get your app with Corona!

Rob

Thanks for the feedback!  I was super depressed last week and hardly got anything done so now I’ve got a little over 2 weeks, but based on your posts I’m going to give creating my app in Corona a go.  The GPS issue is no biggie - I will consider entrances close to each other to be the same entrance, and even if it’s occasionally wrong it is unlikely to affect our grade.  I was also considering pathfinding, but I know nothing about it (I mean, I can code a shortest-path algorithm for a graph, but that’s all) so I decided it would probably be a bit much to attempt.  The main building also has a ton of rooms and hallways, so I imagine this would be a bit of a pain to do whatever annotation (marking where paths are, which direction they run, what rooms are off of them etc.) is required. Maybe I will improve the app with pathfinding capabilities on my own time later.