Final project!

Took a little break after Assignment 3 to catch up with my other modules. Fortunately, things settled pretty nicely and quickly with Jublia. We had an initial meeting with them on the day that Assignment 3 was due, and I think we left with a pretty clear big picture of the final product we are aiming for. Jublia did not restrict us in any way, and was open to us using anything we desired. So the app will stand alone well on its own, but should be able to leverage on the additional data that they can provide us with. Since the idea of an event builder hasn’t been explored much (from our initial research), I feel that there should be plenty of room for us to explore. For the same reason, there will probably be plenty of unknown issues that lie ahead of us. The next 6 weeks should be interesting. 🙂


A* Map reflections

Though the map is pretty functional, it is severely lacking in data. Our initial plan was to map out all of floors of COM1 and COM2, but creating the floor plan was rather tedious and due to some miscommunication on the final map design, we ended up with just the ground floor for both buildings. Sadly, most of the classrooms are on the B1/2nd floor of COM1…

I think most of our group feel that this app will be rather useful to have during our daily commute in SoC, so we will probably work on the unfinished stuff when we are free (which probably means after this sem…).

On hindsight, Ionic was pretty quick and easy to set up with its inbuilt navigation tabs, side menus and popups, but it felt pretty inflexible. There are certain issues such as being unable to close a popup by tapping outside it.

I had particular trouble with designing other parts of the app such as the map icons and floor plan overlays too, as it was my first experience with such a task. Design inspiration for the map icons was stolen from a certain Pokemon Go map app that a friend showed me (somehow I only started playing one month after the release). Another friend recommended Adobe Illustrator to me, which proved to be pretty good advice as it was actually manageable for someone with zero experience with design softwares. The layering thingy was immensely helpful while I was trying to trace a floor plan with the correct dimensions to fit on Google maps.

We had other unimplemented ideas too, such as displaying the timetable for each classroom/lab (NUSMods has this too, but I think it is more convenient on a map) so that you could search for a free nearby classroom easily. Hopefully we will be motivated enough to finish it during the hols. 🙂

Mid-semester Update

Wow time really flies and the mid-term break is already here (20% gone already?!). Just wanted to wrap up my thoughts on Assignment 1 and talk a little about Assignment 3.

Assignment 1

I think the Connectr app turned out rather pretty, though the map really thrives on having your friends already joined the app. It was hard to get much feedback from friends, since the first few that joined could only see my locations.

It was kinda fun recalling the places I have been to. But Facebook only had my recent ~3 yrs of data, so I couldn’t recall the places I have traveled to before that (which sadly are the ones that required more help to remember, if I don’t want to filter through thousands of old photos in an SD card somewhere at home). Well at least I won’t have this problem in the future. 🙂

These 2-3 weeks for a novice like me was really hard. Thankfully my awesome groupmates were all pros and honestly carried me through most of it. Reading the Assignment 3 pdf before starting Assignment 1 would have really helped too (evil prof haha), though my groupmates were experienced enough and did them all anyway.

Last, I feel that there is further potential to use/display the location data from Facebook. Some interesting studies have been done with location data from tweets (which I guess is public), such as looking at travel destination choices based on where you lived. However, this study was confined and generalized to inter-state travel in US. It might be interesting to see if holiday trends can be detected within social groups too.

Assignment 3

Our group chose work on an augmented map for SoC. Initially, I thought a indoor map for SoC is not really required, since I usually just used this to find my way around SoC. But then someone linked a post on NUSWhispers asking for a map of water coolers in NUS. So we decided to include other utilities like water coolers and ATMs on the map.

Pathfinding was an interesting feature that we considered, but chose not to implement as Google Maps did not support this on an indoor setting. Not sure if there is an efficient way to do this with an overlay though…

The main focus for this assignment was the Progressive Web App part, so we chose one of the recommended Ionic framework to give the app a native look. Ionic is an Angular module, thus it was pretty easy to learn and implement. The default design does look a little plain though. Fortunately, we found Ionic Material that allows us to easily add Google’s material design to the Ionic framework. It is still a work in progress though, so documentation and examples were sparse.

On a side note, I didn’t like Chrome’s new material update. Luckily, it could be disabled by setting this to Non-material. I guess the material look is not for everyone haha. Though it did make our app look nicer. =p

Seminar Reflections

Paper & Pencil

This was the only reviewed app that had some sort of hardware component to it. Actually, Paper is the app while Pencil is a separate stylus that has some cool synergy with the app. The artistic feel of the app was the stand out for me. I had a chance to try it out when the Pencil and iPad was being passed around, and it certainly felt premium and fitting of the Apple brand.

For the reader’s benefit, I will start off with a brief recap of the app’s function. Paper is a combination of a note-taking app (text) and a sketching app (freehand). Pencil is a stylus with a pressure sensitive tip that allows for more realistic brush strokes, with a cool “eraser” at the back. Paper is a free app, so the profit maker is on the Pencil which costs a hefty $60.

The presenting group started off by talking about the niche market that this app targets, which are artists. Then, they compared this to the Apple Pencil, a more accurate stylus that comes at a higher cost. I guess this is still justifiable the more expensive one can target the professional artists, while this can target the casual artists. However, I do feel that they might actually be trying to target even non-artists. I am using a Note 5 currently, and frequently use the stylus for note-taking (for this seminar too, heh). The tiny Samsung stylus is definitely awkward to write with, and I can see people forking out $60 for a more comfortable digital writing experience. Considering that Apple users have already paid over $600 (?) for the iPad, I guess 10% more for a peripheral is reasonable.

The group also mentioned that Paper and Pencil’s team comprised of 50% developers and 50% artists. I actually feel that this really shines through in their UI/UX. I played around with the drawing feature, and the way that the brushes and colour choosing tools are placed is nicely spaced out and pretty intuitive to use. There is this swirling circle where you can turn around to choose the gradient of your colour (e.g. if blue is the selected colour, turn it clockwise for a darker blue and anti-clockwise for a lighter blue). This is certainly much better than the rectangle drop down of a rainbow spectrum you get with most other apps.

The artists’ contributions actually extends beyond the UI/UX. The group also shared a cool feature (iirc it was called Mix!). If you are familiar with Reddit’s /r/writingprompts, then this is actually the drawing version of it! So the app (and maybe users?) will provide a small starting prompt of a drawing, which artists can then use as a seed for their creative mind to come up with different interpretations of the initial picture. I think this is actually a pretty cool way to get their users to have a reason to draw, as well as a casual platform to share their work and get reviews.

The last point brought up was actually a pretty cool feature that I believe my Note 5 (and any stylus compatible device really) is also capable off but rarely do apps take advantage of. Having both a stylus and your finger as two separate ways of inputs actually allows for interesting features like the blend function the group showed. Paper reads the stylus as a pencil stroke, while it reads your finger as a smudging action. This is something that will be hard to reproduce with a single-input device (still possible, but arguably a different user experience). This actually reminded me that my “Write on PDF” app actually differentiates between stylus (for taking notes) and finger (for scrolling). There are probably more ways to leverage on this concept for a smoother user experience.

My own original thoughts are kind of already mixed in above, but I would like to bring up an additional point. It is partly a re-raise of a point by one of the TA’s which I feel the group neglected to answer. He mentioned something about the technical difficulty of the hardware implementation, whereby the Pencil’s ergonomics and pressure sensitive tip would be different for different users (e.g. left/right-handed). My take would be that this might be solvable with software, by letting users sort of calibrate their actions at the start. I vaguely recall that my old Note 3 required a stylus calibration (albeit just for accuracy) before the initial usage, though I can’t seem to find this feature on my current Note 5 anymore… I guess we can borrow this idea and make it work for the pressure sensitivity too.

Finally, I would like to end off with a feedback on this 20 sec/slide style of presentation. No doubt it saves time and made the presentations more focused. But experiencing it for the first time made me feel a little lost at times. Perhaps it was the lack of transitional slides or words which made it hard to have an overall view of the presentation flow. #rant

Thanks for reading! Apologies to the presenting group if I misinterpreted some of your points… I might have filled in the gaps (when I was lost) with my own imagination. =/

3 Weeks

Missed a blog post last week. Oops! I shall try to recall what happened in week 2 first…

Assignment 1

Found a 3 man group that registered early on the wiki page. I emailed them and they graciously accepted me into their group 🙂 Thank you Jiang Sheng, Nicolette and Jinghan.

App idea – We had a Google docs where anyone can suggest ideas. Then we ranked them from 1 to 5 and picked the idea that had the highest rating. Pretty effective way I think. Don’t need to be shy in suggesting ideas (some anonymity), but still democratic. We settled on a Travel app that pulls data from Facebook’s tagged_places.

By the mid submission, we had the login and the basic map ready. But we didn’t have a clear picture of what we really wanted still. The initial idea was to include pictures and comments, but it seemed to take too long to get the feed from Facebook, so we dropped that idea… With no clear design in mind, the implementation was hard initially. But things started to flow once some stuff came out, and our ideas started to sync. 🙂

The app started off pretty bland I think… when you could only see your own tagged places. Once we passed the Facebook review for the tagged_places permission (they actually approved within a day!) and coded the friend’s locations functionality, it is looking more colourful! With all the location data, the stalking potential is real haha. Looking through the data is pretty interesting too. There is one tagged in the North Atlantic Ocean.. no idea how. Currently thinking of a good way to display these data… Final submission is this week though! Open Graph’s publish_actions permission needs reviewing too… need to give that 3 days. We have maybe 1 or 2 tries max. Pray!

Assignment 2

Found a group right after class with some of the people still chilling. Emman, Kai Yi, Eugene. 🙂

App picking – We had a few suggestions, and were pretty surprised that some apps were actually released within the last 3 years (Google Photos?)! Settled on Fastjobs in the end, which is an app by SPH that brings part their print advertising online (specifically part-time job recruiting).

The first few days were pretty much spent tinkering with the app. By some luck, the 4 of us actually covered all the different platforms. Should really have discussed this beforehand haha. We collated our reviews and had a really fruitful discussion, and then decided to focus on just one aspect of Fastjobs, which was the mobile app and from the job seeker’s point of view (the web app was really buggy, and we also did not explore much into the job poster’s user experience). The news that our ex-President Nathan passed away actually came abruptly in the middle of our discussion… Spent my journey back reading about all the good he has done for our country. Rest in peace, Mr President. Went off-topic <_< But I couldn’t help recalling that event while reflecting on that meeting…

I think we ended that meeting with a pretty clear idea of what we wanted. We also had an interesting idea of “Uber for jobs” (applying immediately what we learnt that day haha). Didn’t really think too deeply into it though, so let’s see if it gets shot down tomorrow 😛

Assignment 3

Just wanted to say… it is already up?! I barely had anything for my other modules yet haha!

Alright time to sleep after a day of struggling with Facebook api. Shall talk more about the technical stuff I picked up from Assignment 1 (and my amazing group!) after the final submission next week…


First hopes.

This marks the start of many firsts for me. First blog, first post, for my first software development module. Though I have not personally experienced how blogging helps learning, I must concede that reading the experiences of others have been both helpful and insightful. I have not written any reflective pieces on my own accord, perhaps because I never once felt that I had anything interesting to share. Hopefully, this module will change just that.

What scares me about this module is not just these firsts. This will also be the first time I am taking a group-project-based module outside of my comfort zone (I recognize just one name from that email list). Hopefully, forging new relationships and forming new groups will turn out just fine.

What excites me is also this chance to work with and learn from these people. I have always wanted to be able to say “I can fix that.” whenever I find something that feels inadequate, but motivation and confidence is weak as a lone man. Hopefully, this module will provide a platform to achieve these hopes.