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)

The Comparison Between Swift and Objective-C Programming Language

Swift programming language has been announced and released on XCode 6 Beta for over 2 months. Although it is not out of the Beta version yet, we (the iOS mobile Developers) could get our hands dirty on the playing with the Swift code to understand the differences between the Swift and Objective-C Programming Language.

Let’s us make some comparisons between Swift and Objective-C and understand the differences between these 2 programming languages. We can also identify the strengths of Swift over Objective-C.

Swift Programming Language and Its Development

Swift Programming Language is been developed by Chris Lattner and his team since year 2010. He is the director of the Apple Developer Tools such as Xcode, the Instruments and the compiler. As of year 2014, it has been in the development for 5 years.

Steve Jobs passed away on late 2011. The development of Swift has started more than 1 year before Steve Jobs’s passing. It means that Steve Jobs could have involved in part of the Swift Language Development. There is a chance that it is Steve Jobs’s vision that a new and powerful programming language is needed to replace Objective-C (a 30 years old programming language). Only the internal development team could verify if this is a fact or just a random guess.

From watching the WWDC videos on Swift, we understand that Swift is designed to be more
Safe
Modern
Power

The syntax for Swift is designed so that the programmer/developer could make less erroneous codes. When there is any problematic code, the error/warning inside the text editor of the XCode will be much clearer that forces the programmer to correct the mistake. When we program using Swift, we will also write lesser lines of codes when comparing with Objective-C. For example, there is no need of semicolon “;” at the end of each line of code. A few powerful features such as Extensions have been introduced on Swift to ease the developer to create great apps in less time.

The Differences of Swift and Objective-C Code Syntax

Let’s compare the differences between Swift and Objective-C Programming Language. Let’s learn what makes Swift a better programming language.

I have used NSDictionary, NSMutableDictionary, NSArray and NSMutableArray quite extensively on most of my iOS project. So, let’s start to compare these syntax.

Dictionary and Array in Objective-C versis Swift

Objective-C Code

Swift Code

From the above Objective-C and Swift codes are doing exactly the same thing for Dictionary and Array declaration and initialisation. With just the First glance, I believe that you will realize that the code for Swift is simpler and also short.

Check Out the complete documentation for Swift Programming Language: Swift Programming Documentation by Apple.

Swift, Home Automation and Indoor Positioning System

There is not much update on this website on June and July because I have been busy with my company project (Watch Over Me 3.0 Enhancement) and also my personal project. The personal project is a dating social network on mobile. This personal project is developed with the intention to test my skills and to learn new things. I do not have any plan to monetize it at the moment. To develop this app, I am using Facebook and Parse API heavily. The “engine” behind this app is mostly complete. I still have to add some features and polish the interface before ready to be uploaded to the appstore. There will be more updates on this dating social network within the next 2 months.

The Apple Worldwide Developers Conference 2014 (WWDC 2014)

There are some exciting announcements by Apple during the WWDC 2014. For example, the new programming language – Swift and the new frameworks like Home Automation and also the new APIs on CoreBluetooth and CoreLocation. All of these will be ready to ship by Apple probably on September 2014 together with the stable version of XCode 6 and iOS 8.

Swift – Programming Language

Swift is a new programming language that is developed by Apple for iOS and OSX. When the Swift was announced, I did a simple Google search and I was surprised to find out that Swift has been in the development for almost 5 years. It means that Steve Jobs could have been involved in the early stage of the development of Swift. He could have been the visionary behind the development and he knows that Swift could replace Objective-C in the future and make the apps development much easier, faster and powerful.

Since the release of Swift on the XCode 6 Beta, there has been many discussions on the comparison between Swift and Objective-C. At the First glance, I found out that the variable declaration is somewhat similar to JavaScript. After watching the WWDC videos, I understand that Swift is designed to be more safe, more modern and more power.

Safe: The design of the syntax + the auto error detection by the XCode has made the chances of a programmer to create an erroneous code will be reduced to the minimal.
Modern: The programming syntax is modern. It was described as the “Objective-C without the C”. Develop a similar app using both Objective-C and Swift, the development using Swift could be faster because the developer can develop using lesses lines of codes. Some unnecessary syntax such as @ and { } has been removed when comparing with the codes in Objective-C.
Power: Swift has some powerful features such as Nested type and Extensions that will help developer to create great apps.

Here is a list of videos titles related to Swift on WWDC 2014:-
402 Introduction to Swift
403 Intermediate Swift
404 Advanced Swift
406 Integrating Swift with Objective-C
407 Swift interoperability in depth
408 Swift playgrounds
409 Introduction to lldb and the Swift repl
410 Advanced Swift Debugging in lldb

You should be able to watch/download it from: https://developer.apple.com/videos/wwdc/2014/

I have watched all these videos and started to learn Swift since a month ago. I am going to get more serious in it on August and hope that I can master it together with some new features on XCode 6. I am going to convert all the codes on the dating app that I developed to Swift as well.

Apple mentioned that they have big plans for Swift. Well, we shall wait and see.

Home Automation and Indoor Positioning System

Apple has released a new framework calls HomeKit for the iOS developers. The HomeKit can be used to create mobile apps to communicate and control different devices in a house such as television, lightings, air conditioner, garage door and more.

The core technology in the HomeKit is Bluetooth LE. So, the communication using the iPhone/iPad to control the home devices will not consume a lot of battery. Since iBeacon (the indoor proximity system by Apple) is using Bluetooth as well, so, HomeKit and Indoor positioning system are closely related and may compliment each other.

Bluetooth technology is going to play an important role for the years to come as I believe the development of the technology is moving towards indoor. There are many exciting developments in the Smart Home and also Indoor positioning technology. Just to name a few:
1. Google has acquired Nest (maker of “smart” thermostats and smoke alarms for homes) for USD $ 3.2 Billions.
2. The new CoreLocation framework by Apple for iOS 8 will support multistory building. It means that you will know which floor that you are currently standing inside a building from your iPhone.

I am not sure about you. But, I am very excited on the latest development on the mobile app ecosystem. I really can’t wait to see how these new technologies shape the world in the next few years.