Nestia – Lifestyle Mobile Apps in Singapore

It has been more than 1 year since I last posted. I have been extremely busy with the projects of the new startup company (Singapore) that I joined more than 1 year ago. When I have free time, I just want to do things unrelated to work and have a good rest so that I can perform better when I am working. Thus, I haven’t update my website for quite a while.

For your information, I am currently working in the the startup company called Nestia as a Senior iOS Developer. Nestia is a startup company in Singapore. We started as a property rental startup company. But our business has grown to more than just the property sector. We are now a Home Living/Lifestyle startup company.

What is a Lifestyle Startup Company?

We are trying to provide all the needs/wants for the foreigners who come to Singapore to work or study.

They need to rent/buy an apartment, we develop the Property Rental and Sale listing web/apps for them. They need to know how to get around the Singapore, we develop the Interactive MRT map, the Bus Routes and Arrival Time, Direction from A to B and Get Off Alarm for them. They want to know what are the place of interest and also need help for cleaning their apartment. We have added the Home Services and Nearby in our app for their convenience.

Thus, If you are using the Nestia App. You will see some features such as the Property Rental/Sales, Transportations, Home Services, Nearby, Movies and more in our app.

If you are a iPhone user in Singapore. You may go to the iTunes Appstore on your mobile devices and go to Lifestyle category. You should see the Nestia iOS app rank within the Top 10 positions on the Lifestyle Category of Singapore App Store.

Nestia App Annie


From the App Annie, you can see that our app has been ranked consistently within the top 10 position in the Singapore Lifestyle on the iOS App store since early 2016.

My Responsibilities as the iOS Developer

Basically, there are 2 different apps that I developed in Nestia:-
1. Nestia Pro iOS App (Property publishing and management app for property agents)
2. Nestia User iOS App (The lifestyle app for common users)

Nestia Pro iOS App is the First app that I started to build because during that time, our web portal has just been launched. We have to develop an app for the property agents to manage the property listings. After the Nestia Pro app has the decent functionalities, we focus most of our time and energy on the Nestia user apps.

The initial stage of the Nestia user app contains only the messaging and the property listing functionality. Now, it has other additional features like Transportation and Home Services like I mentioned above.

In the First 10 months when I was working in Nestia, I was the only iOS developer for both the apps.

But now, there are 2 more iOS developers joining the iOS development team. It has been interesting to develop the apps in a team using Git version control. I have learned deeper into the Git by learning how to control the master branch in released stage, create new development branches, merge the branches, rebasing, solving the conflicts and etc. It has been a good learning experience.

I will only describe the features that I developed myself in the bottom post.

Nestia Pro (For Property Agents)

This is the app for the property agents. They use the app to add/edit/publish the property rental and sale listings. I will explain briefly on some of the features that I developed for this agent app:-

1. The property listing page (Rental and Sales)
2. The Property submissions page (Rental and Sales)
3. Co-broke (Rental)
4. Inbox (App messaging)

Nestia Pro
Nestia Pro
Nestia Pro


The property agent can register an account with us via our website or the app for Free. We have given the agents at least 6 months of free trial before they decide if they want to join us as paying members.

The agents can submit and view their listings via the app. The agent can even co-broke with other agents for any potential rental deals. In the co-broke feature, the agent can search for a property using place, condo or MRT station.

The agent can use our app to communicate with the potential tenants, buyers or other agents for the co-broking.

Nestia Pro
Nestia Pro
Nestia Pro


Nestia Lifestyle app – (For Common Users)

The early stage of the Nestia iOS app contains only the Property rental feature. Because the main targetted users of our app are the foreigners who are either working or studying in Singapore, as time passed by, we have added more features into the app to help them in their daily lifestyle.

We really care about the user experience of our products. Many of the touches, how and when to load info/photo, the navigation from 1 view to another view have been properly planned in a way to give the best experience for the users of our app.

NOTE: There are too many features on this app and I will only share the main features.

The Property Listing View
We want to make the First page of property listing as simple as possible. The vertical loading of the property list. When a user is going to the homepage of the property rental/sales, we have limited the loading to only 10 properties at a time (using the paging logic). This is to prevent the long waiting time. As for the property photo for each property, we only load 2 photos at the same time. Each swipe of the photo will only load 2 photos as well.

This type of small logics of loading is not easy to implement. We have implemented it because we know that it will improve the user experience.

Nestia User
Nestia User
Nestia User


The Property Map View
The clustering technology. There are many clustering technology and we find out that most of the clustering technology out there will have random generated clusters that always have random numbers for every single scroll and zoom level. We believe that user might be confused and might not be able to find the property that the user has previously seen.

So, we have implemented a clustering technology that based on different zoom level. Within a certain zoom levels and without changing the property filters, the number of properties inside that cluster will be static. It will ensure that the user is able to find back the same property inside the same cluster at the same location inside the map view itself.

Yet again. this type of clustering is not easy to implement because we have removed the randomness of the clustering. We have implemented it because we believe the users would prefer this type of clustering property search inside a map view.

To further simplify the property search on the mapview, we only limited the cluster to only 3 layers. Users know exactly what to expect after using our app for the first time. Most of the time, you will not know how many layers are there for the clustering on other apps as there could be unlimited layers.

The Location Search Filter
When a user is searching a location, there could be 3 different types of results:-
– A Place
– A Condo
– A MRT/LRT station.

These search results are not randomly selected, we did that because we believe it will provide a lot of convenience to the users of our app. After the user has selected a search result. The coordinate of that result be will compared further with the coordinates of the property to let the user know the distance between them. If you go to the static map of the property listing page, it will let you know the fastest route between these 2 locations (either via walking only or MRT + walking). Here, we actually are using the Google static map technology to compare 2 different locations.

Nestia User
Nestia User
Nestia User


Transportation
Transportation is second biggest module after the Property Rental and the Sales. It is to provide the convenience of the users who want to know how to get around Singapore. The main modules for the transportations are:-
– The MRT Interactive System Map
– The MRT Map
– The Bus Arrival Time
– Direction
– Get-off Alarm

The MRT Interactive System Map
Most of the app/website only have static MRT graphic map which give very little information. Our app has this MRT Interactive map which allow the users to choose 2 different stations. After choosing 2 stations, the map will show the closest route between 2 stations, the cost and the estimated time.

The MRT Map
This MRT Map is a more detailed map compare with the graphic map. It shows all the route of the MRT system in Singapore.

The map has 3 layers:-
Layer 1: Show all the MRT routes
Layer 2: Show all routes + MRT station
Layer 3: Show the routes + MRT stations and the station Exits

The user of our app can do some filtering using the station and the map will navigate to that station. It will also show the MRT schedule of that station.

Nestia User
Nestia User
Nestia User


The Bus Arrival Time
Land Transport Authority has done a great job by providing the open API for the bus arrival time. Not only that, I personally have been a frequent user of this particular feature of the app. I can assure you that the bus arrival time is accurate to the seconds. It helps me to plan my travel time properly.

Nestia User
Nestia User
Nestia User


Direction (from A to B)
Direction is the module used by our app users to get around Singapore. The users can enter the location A and B, then we will shows:-
– The Best Recommended Routes
– The Less walking Routes
– The Bus Only Routes

It is up to the users to choose which route is the best for him/her. For each of the routes, the app will also show the cost and the estimated time.

On the Direction map view, it shows the the walking route, the MRT stations, the MRT station Exists and also the bus routes.

The map and the table view may look simple but it is not easy to implement. It is difficult because there are so many ways to get the the same location. To prevent misleading, we need to show the right information to the users. The height of the table view cells will have to be determined in real time based on the information returned from the server. For example, some cell might has only 1 row but other cells might have 3 rows.

Nestia User
Nestia User
Nestia User


Final Notes on the Nestia iOS Apps

I couldn’t cover all the features that I developed for the Nestia app in this post. Here are some other features that I have developed.

The Get-off Alarm – When the user is riding a bus, he/she can set a bus stop to get off. The user can do other stuff, put the app in the background. When the bus is approaching the destination, it will sound the alarm to alert the user to get off from the bus. We are using the GPS and the background location technology.

Home Services – The current apps has 10 different home services: Aircon, Cleaning, Moving, Plumbing, Laundry, Electrical, Paint, Wallpaper, Locksmith and Pest-control.

Favourites – Users can add Property Rental, Sales, Home Services to the Favourites so that they can access the listing easier in the future.

Inbox – The user can communicate with the property agents or owner via the Nestia app. We are using Push Notification technology to notify the users when they have new messages. The current messaging system support the normal text message, the picture message and the property card message. In the future, there will be more message type when we allow the user to use the in-app messaging to communicate with the service provider.

Nearby – The user can use Nearby to find out the Place of Interest from his/her current location. For example, if a user is trying to find the nearest petrol station, with a few taps on the app, the petrol stations info will be available on the screen.

Property Details Page – On the property detail page itself not only has the info related to the property, we also include feature like Transport, Direction and Nearby. The user knows all the available transportations and place of interest near that particular property.

Nestia User
Nestia User
Nestia User


The above post is a summary of the apps that I developed when working in Nestia as a senior iOS developer, if you are interested to find out more about the apps, please download the apps and give them a try!

Download the apps from the Apple iTunes App Store:-
Nestia Pro iOS (For Property Agents)
Nestia iOS (For Users)

Watch Over Me Version 6.0

To wrap up the First month of 2015, I am going to share the continuous development for the Watch Over Me app.

The last update that I wrote related to my company’s mobile app was back on March 2014. The version was Watch Over Me (WOM) 3.0. It seems to be a long time ago. There has been a lot of changes and we have gone through many new iterations. We have skipped the version 4.0 in order to synch version between the Android and also the iOS app. We have introduced new features in both Version 5.0 and 6.0. In this article, I will make a quick share on my experience on developing the WOM app from Version 3.0 to Version 6.0.

WOM6.0
WOM2.0
WOM2.0


Watch Over Me (WOM) Version 5.0 – 5.1

Before WOM 5.0, I don’t have too much experience and knowledge in Auto Layout. During the time I was developing some cool new features in WOM 5, Apple has announced the new XCode 6 Beta with a new programming language – Swift during the WWDC 2014. In addition to that, Apple actually gave some hints that the future iPhones will have new screen sizes (which turned out to be iPhone 6 and 6 plus).

The new XCode 6 also has a lot of improvements related to the Auto Layout on Storyboard. The improvement is necessary to make sure that the iOS developers can easily optimize for the new iPhone/iPad screen sizes in the future.

I was actually quite excited that Apple has made the AutoLayout so much easy to use. We had our internal discussion in our company and I convinced my boss that we need to spend time in converting the existing non-autolayout supported project to become a fully auto layout supported project. After gaining his permission and I used about 3 weeks of time to complete the AutoLayout conversion (It was not an easy task!).

It turned out that our decision was right. When Apple released the new iPhone 6 and 6 Plus, for me to optimise for the new screen sizes was almost effortlessly. 🙂

WOM6.0
WOM2.0
WOM2.0


Supporting the autolayout on Watch Over Me 5.0 – 5.1 was the major improvement. We also have added a couple more features on the mobile app such as :-

– The Network Contact
The main contact and the emergency contacts are able to know the status event running for each other. Eg: When the main contact is running an event and he/she shares his/her event to the emergency contacts, the emergency contacts are able to see the whereabouts (the map) of the main contact.

– Split Testing on the Sign Up Screen
There are 2 different designs on the Sign Up Screen. Each of the user will only see 1 design. We split test the design to know which design actually will convert the download to become a sign up user. We have been using Mixpanel and also the Google Analytics for the data analytics. This Split Testing was added into the tracking as well.

– Optimisation for iOS 8.0
Without a doubt, optimising the code to support the iOS 8.0 was important as well. There are some new permissions needed in iOS in order to gain the device’s location in the background for iOS 8.

WOM6.0
WOM2.0
WOM2.0


Watch Over Me Version 6.0

The major thing for WOM 6.0 was a total new design on the User Interface. The designer has made the design so much cleaner. I actually love this clean design in WOM 6 way more than any other version of WOM.

We also introduced a new feature calls “The Safety Level“. Safety Level is a feature that encourages the users to make the full use of Watch Over Me app. The user can keep track on his/her progress of using the WOM. Eg: If a user has added 1 contact, then the Safety level is at 20%.

If the user wants to achieve the 100% safety level, the user has to add more contacts, invite the emergency contacts to download the app so that they can watch over each other, add some places (safe zones). With the 100% Safety Level, the user will feel more safe when he/she is using the app.

To encourage users to use Watch Over Me more often, we have simplified the user categories and also removed a lot of restrictions. Eg: Before WOM 6, the Lite user could only launch an event with at most 20 minutes. We have removed this limitation. The only difference between the normal users (Free) and the paid user (Premium) is the SMS. Since SMS notification will cost quite a bit of money, only the Premium users can get unlimited SMS and the free user will get 7 SMS.

There were some further optimisations for iOS 8, iPhone 6 and 6 Plus for this version. On this version, CocoaPods is being used more often now. I have added some of the third party libraries/frameworks on XCode using Cocoapod rather than manually adding them. It is to make sure that any new iOS developer (who wants to continue my project in the future) is able to get the initial configuration on getting the project up and running at the shortest time.

WOM6.0
WOM2.0
WOM2.0


Watch Over Me – Future Version

We will be launching a new feature calls the Safer Streets soon. Moving forward, the Watch Over Me Team will be focusing on the Big Data.

Watch Over Me is a safety app, especially for women. The app will let the users know that which streets are safe based on the statistics from the local government. When a user is nearby a crime prone area, the app will notify the user. The user might want to use Watch Over me when he/she is nearby that area.

There are some challenges to implement the Safer Streets. First of all, the app has to get the user’s location all the time (No matter if the app is active, in the background or in the suspended state). Secondly, when a user is launching the Watch Over Me event, the GPS coordinates of the user has to be sending to the Watch Over Me server every 1 minute.

In order for the Location Manager to support these 2 different functions on the same app, the only way that I can think of is to use 2 different Location Manager instances.

Location Manager #1: Get the Location update even when the app is terminated/killed.
Location Manager #2: Get the GPS coordinates from the user every 1 minute continuously even when the app is in the background.

Here is the demonstration of the WOM 6 with XCode and Simulator

Chan Wu – Audio and Video Freelance iOS App Project

In the last few months, I have been busy with a few iOS freelance projects. Chan Wu - The Audio and Video iOS App Project is just one of them. Here are the requirements from my client:- - Have Sign Up and Login. - Able to Reset and Change … [Continue reading]

Getting Location Updates for iOS 7 and 8 when the App is Killed/Terminated/Suspended

This is a long awaited article that I promised to write. A couple months ago, I found a way to get the location update from iOS 7 and 8 even when the app is not active on foreground and not in the background. Yes, you may get the GPS coordinates from … [Continue reading]

Auto Layout Advanced Techniques for iOS 8 and 7 using XCode 6 on Storyboard

As promised from a previous post (How to Use Auto Layout in XCode 6 for iOS 7 and 8 Development) that I will write another article related to more advanced techniques in AutoLayout to develop iOS mobile apps for iOS 7 and iOS 8. In this article, … [Continue reading]

How to Use Auto Layout in XCode 6 for iOS 7 and 8 Development

The Auto Layout is available on the Storyboard for iOS or OS X development since XCode 5. But, I didn't adopt the Auto Layout technology for the projects that I developed because there are only 2 different iPhone screen sizes (3.5 inches and 4 … [Continue reading]