Monday (04/02/2019)
Push notifications.
On Monday, I started to look at push notifications. I followed several tutorials but I didn’t have much luck. I then decided, to leave it and look at it again later on in the week with fresh eyes.
Continuous Integration.
After this I started looking to see if there was support for continuous integration in Azure DevOps. I found out that within Azure DevOps, you can configure a pipeline for a project. To do this you needed to provide a location in your code, my code was hosted in the Azure repos. After this you select a project and it generates a .yml file. By doing this it would ensure that whenever I checked my code in, it would run the latest build and then send an e-mail of whether it has been successful or not.
I also installed test manager which would provide an integrated test management system for manual, exploratory and user acceptance testing needs. Additionally I installed an analytics extension which would show a test failure report. Both the extensions are on a free trial and I would need to analyse these extensions to see if they were worth renewing later on in the week.
Tuesday (05/02/2018)
CSS and Stylesheets.
On Tuesday, I started looking at integrating CSS and less stylesheets into my projects. I had yet to follow any tutorials that had included styling, so I did some research into whether or not I could use CSS stylesheets. I found some useful Microsoft documentation that showed me how to include a CSS stylesheet into my project.
However, I didn’t just want one CSS stylesheet in my project, due to the scope of the project I would need lots. Therefore, I initially thought that the best way to do it was to create a CSS file which would include links to all the different .LESS files for various aspects of the project. Less would allow me to include variables, functions, mixins into my CSS (the documentation can be found here).
My original idea was to create a main CSS file which would use a @import include the other LESS files. However, one problem I found that when I used a @import to include the other files was that I was getting an error telling me to use <link> instead. I then found a guide on Stack overflow that suggested creating one main less file that would import the other less files. I then needed to download web compiler, this would allow me to compile my main less file, and generate a CSS file which I could link to in the app class.
Once I was able to use the separate less files, I created a config file to specify media queries for tablet (I used this forum for guidance), and to also specify common colours. This would then be included on the other less files where it needed to be used. When working on the styles I also found out that an error was getting thrown when using code such as: font-size: 20; However, when specifying px it would throw an error, as it was a generating a stylesheet used across two different operating systems.
Wednesday (06/02/2019).
Project Outline.
On Wednesday I continued working on the project outline to get a draft version ready for the hand-in date on Friday, I then spent the rest of the day looking a push notifications.
Push Notifications.
When trying to figure out how to use push notifications, I stumbled upon a tutorial that used Firebase. However, whilst I was able to use push notification, they were sent using Firebase. For my project I would need to implement some code using C# to automatically trigger these notifications. I also found this to be quite temperamental, with onTokenRefresh() not always being called. This meant that I wasn’t able to set up the message on Firebase as it required a token.
Thursday (07/02/2018).
Push notifications.
On Thursday I continued to look at push notifications, and I tried to see if I could implement a C# method so that they could be sent via the code. However, I was unsuccessful in my attempts, and I decided to look at alternative solutions. These were configuring an email or SMS messaging. This helped ensure that I had a solution which would notify the user.
Emails.
I followed this tutorial which made of a nuget package called Xamarin.Essentials to send an email. When testing this when the button was clicked it would open a Gmail folder, and then the user would have to click ‘send’. However, after reading this forum, users state that this is intented to prevent apps from generating spam.
I also followed this guide to do the same with SMS. However, I was unable to test it due the phone I was using not having a sim card. As well as this, this message would be called after library managers updated some fields, and it is likely that managers would use tablets, which don’t have sim cards.
Friday (08/02/2019).
Project Outline.
On Friday, I finished working on the project outline and refining certain areas, since there were certain aspects that needed to be changed. These included making sure the app was both tablet and phone friendly, and the possibility of using e-mail as a form of push notifications. I also updated the references with names and dates.
User stories.
I also created a project for my system, I used Git as a form of source control and pushed it to Azure DevOps. I setup the styling and installed some of the nuget packages that would be needed (e.g. sqLite and Xamarin.Essentials).
My main reason for doing this, was that I needed to create a board where I could add about user stories. After this I started thinking about the user stories and put them onto a board, I then created one week long sprint to end next Wednesday. However, most of the stories live in the backlog, and they are primarily centered around the actions that the three user types can perform.
After this I added some stories such as the research the AI, and research into continuous integration and the initial set up tasks for the project.