Sunday, 9 December 2018

Developing the Backend

As we all know backend is one of the fundamental building blocks of modern mobile apps. It's the system and database that manage the apps.

Of course, the mobile app would cache or save a part of the data locally, but the back-end is managing the whole mobile app ecosystem so that the mobile could work normally as it should.

However, the challenge of developing the backend is also challenging as developing for the front-end. Back-end usually doesn't have to deal with the user experience per se. But it has to be played well with the front-end developer to make sure the functionality is getting covered.

Developing backend properly will start from the local machine. The local machine has to be set up with a proper back-end development environment. For example git, nodejs, PHP, MySQL, and MongoDB. Of course, we also need a good code editor such Visual Studio Code and Coda 2.

We use Sketch app to do the wireframing for the system flow so that the backend know what API call back should be created.

Backend usually consists of API, a system like cron-job and admin panel.

All of them are at first developed locally so it will not affect any running server if it is already there, that might cause some chaos if it's not ready for prime time. We use git to push files to the server seamlessly without copy and overwriting files to the server via FTP as it's not so efficient. And we back-up to some repository to back-up the files in the safer place other than our local computer.

The proper way to do is like this: local -> staging -> production (live) . Where we will stage first for testing before we go push for the real customer.

On the staging when the mobile app will also doing the staging testing before graduating for live app. As we usually heard sometime staging and production is similar but not the same. As there is also need to test the live server with caution too.

The key for developing backend it's just not to make sure it's functioning but also to maintaining for the next iteration without breaking the current running backend if the service already live and running.

The proper process needs to put in place to make sure the deployment and future integration can be done without having so much downtime. It's also important to have backups for the web app as well because there is a risk of one server failure and could wipe out all the data.

Ok, that is the glimpse of developing the backend in the overall view. It's quite challenging to make sure the service is up with decent reliability.

Friday, 23 November 2018

Expandability in Mobile App

Ok, your apps getting a huge success you want to update, expand your app. Let say going to version 2.0.

Meanwhile, you are developing the 2.0 version, think about whats for people using version 1.x.

First of all the important for the backend to support the legacy app gracefully, we want user to update to the latest app but not all people are yet to make move yet, so gracefully, do something nessecary to make sure previous user still be able to not having bad UX, such crashes. Tell user to update it.

On the backend side, we will use versioning to maintain old and new API. It looks like this https://myawesomeservice.com/api/v2/newCall. So the old app will use v1. This way to help to avoid regression to the old API.

Another thing push notifications. When we already have actual users on the market, we cannot do blasting to all users when testing the push notifications, we have to test it for tester only like ourselves. The new push notification handling also may be different from the old one, so bear in mind how to do it properly.

All in all, we want to make sure the old users understand they need to update the app to work properly as the business is growing.




Friday, 2 November 2018

Hello November!

It's November, it's the month of my birthday!

So we are almost at the end of the year, let's reflect and predict what will be going to the future of mobile computing.

Apple released new incredible 2018 iPad Pro. It has the almost edge-to-edge display, no home button, all gesture based, and also using True Depth camera for Face ID authentication. All those stuff are inherited from last year iPhone X. And this year iPhone also updated for XR, XS, and XS Max.

We see the trend already, no home button is the future, and gesture will become more common in the user interface. Inside there 'fluidity' is an important factor for a wonderful gesture-based UI.

It's more into the software and how would the OS optimize the gesture.

The iPad now spotted a new USB-C, no longer uses Lightning cable. If you may, It almost becomes like a MacBook, without the keyboard. I know Surface have already done that.

But unlike Surface, iPad doesn't bring the baggage of legacy PC world. iPad comes fresh.

iPad software will become important as it can be ported easily soon in 2019 where Apple will open up a new framework that can share the UI element between iPad and Mac. People called it Marzipan project but let's assume it's called as UXKit. 

UIKit for AppKit become UXKit. 

Not only from iPad, but iPhone app can be ported to Mac app easier soon. And, the Mac is in the making for the next revolution. 

Mac-based on iOS. 

Is that possible? Will take significant time. But once it gets there Apple has a total control from silicon to the software just like iOS devices do.

But lets imaging future's MacOS based on iOS, I think it will be the next decade plan, where the iOS app is good enough to replace Mac app. Look at this, the architecture of mobile and Mac is different, the efficiency is different.

The way that the system based on mobile is really optimized and energy aware. And bring that to Mac level will unconsciously make the Mac better performance.

I am also thinking to build an iPad app, and later on to port to the Mac. Because Apple has it's own ecosystem that can be well played together.

Till then, always be happy.



Tuesday, 16 October 2018

iPhone XS, XS Plus & XR Price in Malaysia

Early today I got information that the latest Apple smartphone will be released in Malaysia soon.

People can pre-order the phone throught the website starting from 19 October 2018.

The price as below:

iPhone XS 64GB – RM4999
iPhone XS 256GB – RM5699
iPhone XS 512GB – RM6649

iPhone XS Max 64GB – RM5399
iPhone XS Max 256GB – RM6099
iPhone XS Max 512GB – RM7049

iPhone XR 64GB – RM3599
iPhone XR 128GB – RM3849
iPhone XR 256GB – RM4299

Saturday, 6 October 2018

Hello October 2018

Hello to the brand new quarter of 2018 Q4, it's the last quarter of the year. Oh yeah.

Last month we had a blast, conducting an event at MaGIC, Cyberjaya, 28 Sept Saturday to be precise, DevCon #5. I teach React Native workshop for the second time.

Well, this year is the year of cross-platform, I do not only started React Native but went deep. In term of design, data, navigation, and integration. And another tool that I learned is Unity with AR. It's another cross-platform tool. 

The demand for mobile apps is unprecedented. However, to get it fast, we have to innovate with the tool that can develop the app faster and can be deployed on currently famous platforms(iOS and Android). 

The learning curve is steep. Let's say I am from native iOS background. I am using the XIB, or Storyboard since the beginning, and then using React Native, there is no GUI. If you don't have a design, you will use your imagination as much as possible. The real pain when you inherit the project and can not visualize what the project can look like. 

To cover up the problem, using the prototyping tool to design and plan the app can help. 

Just like building house need a proper blueprint, it's as much needed on React Native development. Not just to make the app more attractive but also make the continuous understanding of the app for maintenance. 

By having those we can refer how the application goes from one screen to another. 

At the end of the day, we know where should be improved and what we can innovate more to increase usability and effectiveness.

Alright, that is all from me, read on the next post. 



Saturday, 15 September 2018

Apple Special Event September 2018

Everyone knows it, Apple just announced iPhone XS, iPhone XS Max and iPhone XRNot to forgot new Apple Watch Series 4. And we are kind of excited.

This year is the S cycle release, so it's not the external upgrade but more into the inside the phone. On the top of that Apple make bigger phones. XS Max and XR. Well, why Max, because XR is bigger than XS. So it might get confused if the name is Plus because XR is bigger too.

XR is a lower entry to iPhone this year, it starts from $USD749, which is higher than entry model last year. XR is actually a phablet just like XS Max. But the display quality is lower than Max.

Many you can find all the details of those phones, but I don't want to talk about that, I want to discuss what Apple has done in the long run.

Well, next year will be the year of the phablet, as the entry phone is the phablet. So apps should to somehow give an advantage to phablet users. Especially app that supports horizontal mode. It has more screen real estate and should give some additional panel for more convenience.

It shows us that Apple also updates constantly starting from the chip that powers the phone. A12 Bionic.

We should make a table:

2018 -> A12 Bionic
2019 -> A13
2020 -> A14
2021 -> A15
2022 -> A16

Since 2017, A11 also have 'Bionic' moniker. It represents the effort of making chip have neural network for machine learning which gives an advantage for AI processing. It's also true for this year and will be more on years to come.

There are many things that AI can be used, but more intensively is on image processing, especially when using Face ID. Next is usage for Augmented Reality. Having a good processor make the Face ID and AR better.

Not to be forgotten TrueDepth sensor which enables Face ID secure lock for phone and also can be used inside-app for authentication. In addition, it has more utility than a fingerprint sensor, it can be used for selfie photography to make portrait mode, animoji, precise face AR and more.

If we were Apple after this release, we will definitely restlessly think about the execution for the next year's devices. 2019 September what will we announce? iPhone 11? Right. What will the next iPhone happen? Well, I think will be similar to this year. iPhone 7 will be phased out, new updated XI R, XI, and XI Max. Using A13 Bionic.

Well, what can I think Apple can make the bezel smaller than this year with the new external design. They have to do it because it's XI ( 11 ). Apple has to make it sexier especially the XR line. Upgrade the internal power off course, the better camera of course with the power of the chip, better photography experience, reaching the power of DSLR. Base 64GB still remains I think.

By the way, this year's Apple Watch Series 4 is dashing and will have the looks for many years to come at least 2-3 years.

The power of Apple is innovation, and the innovation is not coming for 1-2 years, what Apple has now it the effort since more than 11-12 year for iPhone, yet iPhone has won commercially even at the early years.

Even the iPhone prices are up. We understand that with the power maturity, many people can keep their iPhones longer than the older generation. Yet Apple keeps pushing to make better phone every year. If your look this pattern before the iPhone, nobody does this. Having this yearly improvement is the killer factor that makes Apple keep going and going even bigger.

And the business that they make is about trillion dollar valuation. And the business is sexy. Make popular stuff, get into the popular culture, trendy and cool.

Deep into that also Apple go into education and care about people with less accessibility. And also clean energy and privacy.

Good or bad about Apple, they just keep making lots of money and make themselves super prosperous.

And that leaves a thinking of what we really can learn from them.

Till on the next thinking, see you.















Tuesday, 11 September 2018

Hello September 2018 - Apple Event, Swift and React Native

Hey it's September of 2018 and it's pretty exciting month of Apple Events which will unveil the next generation of iPhone.

iPhone is the mother of all modern smartphone this decade, whatever Apple will throw next will be a significant update to the smartphone lineups.

As a bunch of software people at iReka Soft, at MaGIC, and around Cyberjaya, we are looking forward the next generation of hardware that enable us to do more in the future.

Swift - it's a beautiful language; clean, modern, simplified. We make the Swift development more flatter by having all the controllers into a single file and it does looks dang. Easy to look on the bird-eyes view on what the scale of the project.

React Native - development with React Native is awesome. It's getting better. More integration with Redux and the UI. The technology came from the web now empowered mobile development, underlying by an amazing technology that renders into native component for each platforms.

Facebook use a lot React Native technologies in their products; Facebook's Marketplace, screens inside Instagram and many more.

Using React Native make the development faster and it's also cross-platform which you can build for iOS and Android with same code base.

For doing rapid development, we will use React Native, focus more into the business logic, get things done faster, more efficient, get things done, change one, all change. The challenge on the deployment and how do we will find issues on some platform or even specific device as Android has so many freaking devices. It's the QA jobs to reporting what works on what, still a though job.

Alright, that's for now, we will get back after the Apple Special Event that will be held on 1am 14th of Sept, Malaysia time.

Peace out.


Developing the Backend

As we all know backend is one of the fundamental building blocks of modern mobile apps. It's the system and database that manage the app...