Bibliotheca --- Neslihan Kalayci
Plans for Spring 2016
Gantt Chart / Spring 2016
Weekly Updates
Week 1-2
02/07/2016 Weekly activities including accomplishments, problems changes to plan, meeting minutes, etc...
Update the Gantt chart to be more specific with more interim components. Better reminders design, solved image issue to have books with a personal image, add take camera picture in application.
Final test of application scenarios:
1) Test Scenario for 'Add a New Book'
- Enter new book title
- Enter new book author
- Complete description part
- Select Image from Gallery / or Take a New Picture for Book Cover Image
- Select suitable database/list
- Save Book Data
2)Test Scenario for 'Have Read'
- Add a new book: follow steps which are described in step 1.
- Select Database as a Have Read and Submit
- Back to the Main Page
- Open Have Read Page
- Display the information of the entered book
- Select added book
- Display detailed information for added book
- Update information(Add new detailed information/description,change title etc.)
- Back again Have Read Book List
3)Test Scenario for 'To Read'
- Add a new book: follow steps which are described in step 1.
- Select Database as a To Read and Submit
- Back to the Main Page
- Open Have To Read Page
- Display the information of the entered book
- Select added book
- Display detailed information for added book
- Update information(Add new detailed information/description,change title etc.)
- Back again To Read Book List
Week 3
02/14/2016
- Working on the UX
- Improve UI for completed pages
Design Favorites Page:
- Implement a favorite customized button into the card view design
- Database created for Favorites Page
Week 4
02/21/2016
Favorite Button in Development Process
- Sample Favorite Button is created
- In shaping progress - custom shape will be determined and created for favorite button
- Sample Favorite Button implemented into the CardView Design(Have Read Page)
- Database connection between from Have Read Page to Favorites Page
- Favorite button should be able to send the book data from the Have Read Page to the Favorites Page
Working on;
- Displaying correctly the sent book data information from destination page to target page
- Making Research about Reminder for the Reading Now Page
- Update User Interface Elements and testing
Solved;
- Selecting image from gallery issue is solved; selected image did not properly shown on the corresponding ImageView area, need to rotate my image before selecting gallery.
+save and display the book cover image in vertical direction.
Week 5
02/28/2016
- Worked with UI Thread [1]
- RecyclerView was updated, new EventHandlers methods were applied (handling itemclick events)
- EventHandler created to work with favorite button in the CardView to send book data information from HaveReadPage to Favorites Page
public class HaveReadMyAdapter : RecyclerView.Adapter
{
public event EventHandler<int> ItemClick;
public event EventHandler<int>RemoveBookClick;
//
...
}
void RemoveButtonMethod(int position)
{
if (RemoveBookClick!= null) {
RemoveBookClick(this, position);
}
}
- SaveBookMethod takes the inputs(book information data) from HaveReadTable and saves it to the FavoritesTable
- RemoveFromDatabase enables to delete sent book data from HaveReadTable
- Then remove item from recyclerview and notify recyclerview with update
- NotifyItemRemoved – Signals that the item in the specified position has been removed.
_RecyclerViewAdapter.RemoveBookClick += (sender, e) => {
//get name,image,author and description from Table
new Thread (new ThreadStart (() => {SaveBookMethod (image, name, author, desc);
RemoveFromDatabase(databasepath_haveread,indexnumber);})).Start ();
list.Remove (e);
_RecyclerView.RemoveViewAt (e);
_RecyclerViewAdapter.NotifyItemRemoved (e);
};
- Favorite Button successfully transmit the book data information exchange between two pages
- Both databases are updated after information transmission.
Week 6
03/06/2016
- User Interface Elements need to be updated for Main Page
- Design and Research about User Interface Elements for Main Page
- Book data counts successfully displayed for each sub-pages in the Main Page
- Enable user to see book counts for each page
- Main Page still in the user interface development process
- Material Theme component will be applied (Research about finding suitable/possible display solution for Main Page)
- Working on the SQL Statements on SQLite-Xamarin
- User can sort their book data information by searching one specific author name, sorting A-Z by author name or Book Title Name etc.
- Still designing Reading Now page structure
- --
Week 7
03/13/2016
- Material Pager Sliding Tab Strip for Xamarin.Android was implemented.
- This library requires Support v7 AppCompat Version 23 - Must set Compile with API 23 in XS
- Working on the possible user interface design and try to find the most suitable user interface elements
- Main Page will have two options/tabs in the slider page
- In the first page, user can be able to display the statical data for each book count information based on the monthly, weekly information etc. (not decided yet) - In the second page, user can display the last edited/added or updated book data information from each page.
- Working on the Reading Now Page Design
Week 8
03/20/2016
- UI update
- Possible trouble with previous UI design for Have Read Page;
If user has in a large number of book collection in their reading history, user may not be able to display the collections of the book in the optimum way.
- So that, I've decided to update Have Read User Interface to make enable user display their reading history optimally.
- RecyclerView;
Item Decoration Method was used.
- Xamarin.Android.Support.v7.CardView package from NuGet package manager was used again.
<android.support.v7.widget.CardView
(same as the previous design...)>
<LinearLayout
(same as the previous design...)
</LinearLayout>
</android.support.v7.widget.CardView>
- Updated part
app:cardUseCompatPadding="true" app:cardElevation="3dp" app:cardCornerRadius="5dp"
cardUseCompatPadding is compatible with Android 5.0+ devices
- In the RecyclerView adapter which I have created for my previous design, I extended with RecyclerView.ItemDecoration method.
- For spacing values between items are taken by method as an integer number.
- Also, I override GetItemOffsets method which enables to give different values for each position of outRect.
- Then, book items added by following line;
recyclerView.AddItemDecoration(new RecyclerViewAdapter.recyclerViewItemDecoration(value_for_spacing));
- I'm still working on the dashboard design.
- I'm also making research about BLOB storage, it may be replaced with SQLite for saving book cover images.
Week 9
03/27/2016
- Pager Slider was implemented into the application Main Page
- I've also created separate CardView design for Pager Slider's each tabs.
- Pager Slider Tabs was determined by
PagerSlidingTabStrip
- Pager Adapter was implemented into the Main Page design.
public class MyPagerAdapter : FragmentPagerAdapter
{
private readonly string[] Titles ={"...","..."};
public MyPagerAdapter(FragmentManager fm) : base(fm) { ... }
public override ICharSequence GetPageTitleFormatted(int position) { ... }
public override int Count { ... }
public override Fragment GetItem(int position)
{
return CardFragment.NewInstance(position);
}
}
- I'm working on the UI design for three different layouts (Three different CardViews design in each tabs).
- Take a Photo for Book Cover Image is now completed.
- The directory will be created automatically, if there is no directory called "Bibliotheca" in the mobile phone.
- User can take a photo of book's cover image and image will be automatically saved into the Bibliotheca folder.
- Recycler view has not smooth scroll behavior. So that, I need to work on this problem and try to solve it.
- Research about LRU image caching
- Loading Large Bitmaps Efficiently
- I'm working on the LRUcache in Java and try to find possible solution for Xamarin C#.
Week 10
04/03/2016
- Working and Researching about LruCache for Xamarin.Android
- Caching Images with LRUCache
- LocalImageService was created to solve OutOfMemory Exception
async Task<Bitmap>
Week 11
04/10/2016
- I've made some updates for responding empty pages when user does not add a new book into the reading history.
- Connect database and display the suitable layout for the current page
- I've made similar update for my favorite page. It has also connect the database and check whether is there any book liked or not.
- I also update my Add a New Book Page based on the Material Design Principles(will continue to update).
- RecyclerView is replaced with updated version and displaying Have Read items layout also updated.
- list = new HaveReadBookList<HaveReadBookDataClass> ();
foreach(var item in bookdata)
{
list.Add (item);
}
//.....
//.....
readfromsql ();
_RecyclerViewAdapter = new HaveReadMyAdapter (list, _RecyclerView);
- public void readfromsql()
{
using (var conn= new SQLite.SQLiteConnection(pathToDatabase_haveread))
{
bookdata = conn.Table<HaveReadBookDataClass>().ToList();
}
}
- I made this update for my recyclerview to keep my data efficiently and access easily.
- I am also still working on caching Images with LRUCache.
- Testing and updating will also continue.
Week 12
04/17/2016
- Passing data between activities
- Send book information To Read -> Have Read or To Read -> Reading Now
Week 13
04/24/2016 Weekly activities including accomplishments, problems changes to plan, meeting minutes, etc...
Week 14
05/01/2016 Weekly activities including accomplishments, problems changes to plan, meeting minutes, etc...
Week 15
05/08/2016 Weekly activities including accomplishments, problems changes to plan, meeting minutes, etc...
Screenshots from Application Process
Main Page
Favorites Page
Reading Now Page
Testing
Completed/Succesfull Parts
Developing Parts
Missing Parts
-List of the application parts that need to be improved



















