Download presentation
Presentation is loading. Please wait.
Published byKristian Bell Modified over 8 years ago
1
Mobile Registration for Android Goals, Results, and Everything That Went Wrong Scott Hamrick, Paul Kilgo, Ben Lemmond, Robert Liang, Josh Sullivan
2
Original Goals ● Log in using MyBama account ● Keep local database of usernames/passwords ● Add/drop classes ● Search course catalog ● Work with multiple semesters ● Confirm schedule
3
Some Definition Problems ● How do we define which semesters a user should have access to? ● How does MyBama determine which semester is the “current” semester and which ones are in the future and should be visible to the user? ● When is a user unable to confirm their schedule? ● We had several questions which would normally be answered by the customer, but we had to come up with our own definitions.
4
Our Definitions ● A user should be able to see a semester if they have previously confirmed that semester or that semester's “ADD” flag is true. ● The “current” semester is the oldest semester (according to database IDs) whose “ADD” or “DROP” flag is true. ● A user can confirm their schedule if that semester exists and has not been previously confirmed. ● These definitions are implemented in backend, but the client does not fully support it yet.
5
Coming Up Next... ● Project consists of three major parts ● Backend software and data backing ● Intermediate XML language (ClaXML) and HTTP request format ● Application code
6
The Backend ● No real MyBama to work with so we created our own. ● Consists of a flat file database and a few PHP files built around our HTTP request format and ClaXML. ● Rather insignificant to the project itself, but exists as a way to abstract how MyBama functions.
7
The Middle-Language ● All requests are initiated by the client by making a request to a base API URL (we call it API_URL!) ● Based on inputs from the user, a component in software makes a request to API_URL?act=[action]&r=[resource]&q=[argum ents]. ● Server responds with a ClaXML document. ● Works similar to a simple web application.
8
The Client ● Consists of many components ● The ClaXML parser ● The Session object ● The GUI ● Currently built for Android 1.6 (Donut)
9
The ClaXML Parser ● Implemented using SAX, the Simple API for XML ● Two classes make up this component, ClaXMLHandler and ClaXMLSet. ● ClaXMLHandler contains the logic for understanding ClaXML and is passed to SAX ● ClaXMLHandler constructs a ClaXMLSet as it parses the response document. ● Flags are set if there is great failure.
10
Session Object ● Only object which uses any network connection ● Constructs a request URL and tells the ClaXML parser to parse the response. ● Throws BMRExceptions (which carry useful info to higher-level stuff) in case of error. ● The most major state element of the applications. Keeps track of the user session (as name implies). ● All objects make a call to this at some point.
11
The GUI ● Organized according to the Android SDK in “Activities” – essentially a screenful of stuff you can do. ● Three list-based Activities and one normal Activity ● Login screen ● Semester management screen ● Search course catalog screen ● View class information screen
12
LoginActivity
13
SemesterActivity
14
SearchActivity
15
ClassActivity
16
Design Process ● Top-down approach: we started with just the four Activities and then realized the lower-level things as we progressed. ● 1 st : Activities ● 2 nd : Session object ● 3 rd : ClaXML parser
17
Development Process ● Mostly ad-hoc and agile-like ● Started with a small plan and developed it outward ● Organized small jobs for programmers to do ● Programmer finishes job and commits to source control ● Issue tracking ● Used Google Code's Issue tracking to keep up with things to be fixed.
18
Testing Process ● Test cases stemmed very directly from use cases ● Generally speaking, for every use case, there are two test cases: ● Successful action ● Failed action
19
Some Cool Ideas for the Future ● Showing where a class is located in the class details window with Android's built-in Google Maps support. ● “Borrowing” Transloc's bus data to track Crimson Ride buses in a similar matter.
20
One Extra Thing: Multilingual ● Android provides a really easy (literally five minute) way to create multilingual apps.
21
Desired Effect: Prettiness ● The default theme for Android is ugly. We want our app to look something like this.
22
That's all folks!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.