OmerKhureshi / ToDo-app-demo

CodePath demo - A simple to do app
0 stars 0 forks source link

Pre-work - SimplyDo

SimplyDo is an android app that allows building a todo list and basic todo items management functionality including adding new items, editing and deleting an existing item.

Submitted by: Syed Omer Khureshi

Time spent: 17 hours spent in total

User Stories

The following required functionality is completed:

The following optional features are implemented:

The following additional features are implemented:

Video Walkthrough

Here's a walkthrough of implemented user stories:

Video Walkthrough

GIF created with Peek.

Project Analysis

As part of your pre-work submission, please reflect on the app and answer the following questions below:

Question 1: "What are your reactions to the Android app development platform so far? Compare and contrast Android's approach to layouts and user interfaces in past platforms you've used."

Answer: I have had previous experience building simple Android apps and I feel it's not difficult to get started learning Android app development. However, there is a huge list of concepts that are a developer must understand to build slightly complex apps. But there are very good resources on internet, including the CodePath cliffnotes and the official Android documentation, to learn new APIs and understand their usage.

I have previously used JavaFX and feel it is very similar to the Android layouting framework, in that both provide an XML based layouting that can be augmented dynamically with java. This enables a cleaner seperation of views from logic.

Question 2: "Take a moment to reflect on the ArrayAdapter used in your pre-work. How would you describe an adapter in this context and what is its function in Android? Why do you think the adapter is important? Explain the purpose of the convertView in the getView method of the ArrayAdapter."

Answer: As per documentation, when using a list based UI element backed by a collection, the ArrayAdapter provides objects that will populate each element in the list. By default the toString method is invoked on each element of the collection object and populated as a TextView on the UI.

The ArrayAdapter invokes the getView method to obtain a view to display. If required, the view can be customized by overriding the getView method to return the custom view as desired.

In order to improve performace and memory, the ArrayAdapter can reuse older views that are no longer displayed on the screen. The convertView parameter of the getView method receives the older views using which the ArrayAdapter can recycle them. If needed or in case the old view cannot be reused, the getView method can create new view as well.

The developers at StackOverflow have warned not to store state data in view as they may be reused and instead store the data in adapters.

Notes

Describe any challenges encountered while building the app.

License

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.