Talk about hybid mobile app

For a mobile app development, it has 2 approaches: Native VS Hybid. In general the cost for building a native app is higher than a hybid app, especially for some e-commerce store they already have the site running, they want it also run in app to enable some feature like barcode scanning or wallet integration.

I am not a big fan of hybid app, but things not always go alone with your idea and sometimes showing respect to business decision is the way you need to go for. So I would share some of my lesson learn for such hybid app development:

The web and app development coupled

Once you decided to have the app run in hybid, you not only have to guarantee your app running, but also have to have the site the app ride on always up. If there is down-time, by accident or scheduled maintenance, you need ensure the app has proper handling or your app user will find the app fail to work.

Session sharing

As you may develop some part of the app as native, for some operation which require session sharing, you will have to deal with the sync of the session so it wont result in invalid session or fail to sync the session in native and that in webview

Provide information for the webview

For some case, even not ideal, your web may need to show some mobile app specific content, the way to tell the webview is by mean of user-agent. Modifying the web-view user agent with providing the hint of the web is being rendered in app’s webview, version information is also important. This allows you to run any targeted content by means of detecting the user agent string.

Performance about hybid app

This is not something new, rendering website in webview does not perform well comparing with using native approach. With descent API as the data source for the app, the payload for a request is likely smaller than loading a web page, this helps provide a better performance as you take shorter time to download the content. Sometime Webview needs to download all content in order to show the page.

Challenge on App vs webview tracking statistic (if deep link enabled)

If the web the app ride on is a e-commerce store, it oftens have many affiliate tracking. And if you have deep linking enabled. The traffic to your site will bring to the corresponding section of the app. This is actually breaking your affiliate tracking, having a reducion of traffic that execute your tracking as the web not even rendered. And even the tracking code can execute in webview, the data stored in the URL in form of param can lost, result in failure of getting the information that you need. Implementing tracking in app is far more complicate compare with the installation in web, the high cost and heavy effort demond to get the data right is far more complicate than you can think of.

It will never be complete native, and result in hybid forever

If you think of having the app run in hybid first, and turns it to native. I look forward your success, or you just planting a technical debt which never likely resolve, and this is a Tech Debt.

Therefore, if you take part in tech planning for app development, try not define your app to run as hybid unless you have really good plan to evolute it afterward.

 

 

Being listed in a TOP 20 Technology Blog 2017


Top 20 Technology Blogs

 

Honestly I am shocked more than a surprise when a website call MrDiscountCode.hk sent me a email saying my blog is being listed in their Top 20 Technology blog 2017. As I only use my blog share the website that I made, or share the technique that I think good to see how it could work for others. Of course I subsequently receive follow up email to ask if I can add their badge above, which I know it is a way to not only help me from having my blog being listed in their site, but also to have their site url mentioned in my blog so as to improve SEO.

Even knowing very limited about MrDiscountCode.hk , as long as it is not spam site, and it is a Hong Kong Startup, I am fine to receive this appreciation and recognition. And this may also be a chance to really allow me examine how this can affect a site SEO if both side mentioned each other website.

I know my blog is still very in-adequate in knowledge sharing, and it is still a long journey for me to learn more how to run a e-commerce better. Such recognition would be a small encouragement for me to share more and more often.

Hope you find my site really helpful.

Video playlist which help you understand more how to run a E-Commerce business

I often amazed by Shopify as it often offers various kind of documentation and support material to empower store owners / eCommerce merchants to know their business better and how to run their online store more effectively. Recently I receive a note from Shopify that there is a video series which is developed by Ezra Firestone of Smart Marketer, he shares his success business use-case and I find it does bring out some points that I lack of language power to illustrate, here you go:

 


Gain your domain control from Shopify / OpenSRS

You need a domain name for your website / online store. Like my site, gordon-chan.net is the domain. You have your domain share to people so they know how to reach your site.

For people who new from website / online store setup. When they register Shopify for their store, they could also purchase a domain through Shopify so as to get rid of having the store domain as xxxxx.myshopify.com .

Shopify sell a .com domain with USD $13/year, and they help you integrate the domain with the store seamlessly. It seems handy, and yet, you can actually have other choice.

Buying a domain from GoDaddy or some other domain service provider is very easy, and often offer you much more discount if you register for few-year package. Let say GoDaddy sell a .com domain $8 + $120 = $128 for 2 year ($8 for the first year). Of course, GoDaddy is famous with its poor / non-user-friendly interface. Yet it is the cheapest domain seller I ever see. Some other clients use Domain Discount 24 , again, the feature is detail but the interface is quite traditional.

So, having shared alternative option for domain purchase from cost perspective, any other reasons for not using Shopify domain? Answer this, you need to aware Shopify is actually working with OpenSRS, which is the real domain service provider. When you signup a domain through Shopify, you don’t receive any information about the domain management. Like any login information for domain panel. It is indeed when you need to get your domain integrate with GSuite / verify your domain ownership using domain CNAME records etc. You can get your domain panel information with a very simple and feature-less interface only if you call / live-chat with Shopify Support, which sounds weird to me.

Apart from that, domain renew fee is bundled with Shopify invoice, You cannot purchase the domain for X years, or add any additional protection to the domain.

So, I often recommend my clients, either buy domain from GoDaddy and seek for Shopify Expert help on the configuration (link up the domain with the Shopify store) or contact Shopify support to obtain the domain login information as soon as they can, in order to gain back the control of the domain.

References:

Shopify: Buy a domain: https://help.shopify.com/manual/domains/buying-domains/buying-a-domain

Shopify: Managing domains: https://help.shopify.com/manual/domains/managing-domains

GoDaddy: https://hk.godaddy.com/

 

Tips for Shopify Store setup

Here are some tips I would share with people who wanna setup a Shopify Store for their online business.

Seek for a Shopify Expert for help

Not attempt to but fine if you do treat me as sale-person for my own freelance business, just, there are quite fundamental benefit for finding help from Shopify Expert. Apart from the potential cost for consultation, you will definite save costs that you may not necessary need to pay for.

Some clients come to me for Shopify store setup, but they often already start paying Shopify for some time and they fail to get the store work in the way they like so seek for Shopify Expert. In fact, Shopify Experts are authorised to setup “Development store” which is Shopify Store that with majority features but no trial period limitation.

In general, Shopify Experts know how to assist you to technically achieve something you want, and what is technical infeasible before it comes to solid request. People who start paying Shopify while not knowing Shopify limitation will result in a waste of time and money. At worst, they are not satisfied with what Shopify provides and cannot utilise this platform for their business.

Cost for hiring a Shopify Expert can be minimal. Free of charge is not the way we go for, but Shopify Expert like me treat meeting potential clients as friend-making.

Cost for a Shopify Store Setup

There are few area you need to spend money for store setup or running a store in long run.

  1. Consultant fee for hiring Shopify Expert
    • Some Shopify Expert are fine to share with you the detail about Shopify, some other may impose a consultation fee. No matter what, look for multiple Shopify Experts and compare their service pricing models.
  2. Shopify Store Monthly / Yearly subscription fee
    • No doubt you need to pay Shopify for the service, but this cost cans be deferred. Apart from Paid Store, with feature depends on the subscription fee, there is another type of Store: “Development Store” which can be setup by Shopify Experts, having no 14-days trial limitation, but with few restrictions:
      • Cannot install Shopify App which incur fee
      • Cannot perform real payment transaction
      • Cannot link up with your domain (which mean need to stick with *.myshopify.com
  3. Shopify App subscription fee
    • Shopify App provides you features that not supported by Shopify out-of-the-box. Example: Some store wanna customer upload their logo / image as tailor-made T-Shirt. Shopify does not support this, but some app like Product Customizer can provide this capability; Shopify cannot do multilingal, it support translation but only single language can be shown. You can use Langify to achieve this feature.
    • Shopify App can be:
      • Free
      • One-time subscription
      • Monthly subscription
      • On-demand subscription (charge per usage, like some image optimisation)
    • Transaction fee
      • Whenever you receive an order and perform the transaction (captures the amount that customer pay), Shopify will have transaction fee. Additionally, the payment gateway service, like Paypal / BrainTree / Stripe / PayDollar, they will also have transaction fee.
  4. Shopify Expert development fee
    • This is different from the consultant fee. This cost is for the Shopify Expert help you develop the E-Store in the way you wish to. From theme styling to functional integration. The cost and the included services can be quite different among different type of Shopify Experts.

Start from simple, plan for longterm maintenance, evolute gradually as progressive enhancement

Shopify provides you the fundamental function for you to run a E-Commerce business. You need not worry about most technical concern. But it does have several factor that lack of flexibility or feasibility. Say:

  • It allows:
    • You can manage Product / Collection / Page / Blog setup with its decent admin panel
    • You can manage theme / possible to customise / switch from one to another them
    • You can integrate with well known online payment gateway
    • no effort on having your site’s media asset like images / files be delivered with the well-known Content Delivery Network (a.k.a CDN) to fasten the site loading
    • Fundamental reporting allow you know how many sale / discounted amount / return amount reports
  • It is weak or no support on some factors:
    • You cannot change url pattern (if you very keen on SEO), you cannot imagine to have multilingual site with different context path like {domain}/en/… for English, {domain}/tc for Traditional Chinese
    • You may have low grade on some online SEO report saying there are many inline CSS/JS for which are Shopify needed scripting that you cannot remove
    • You cannot change your checkout flow (unless joining the Shopify Plus! plan)
    • You cannot expect your site can run very well in China region as Shopify is a foreign country where their servers located beyond China boundary.

(To be continue)

Mamedio Swimwear

This should be the most sexy project I get involved. A Brazil brand swimwear Shopify store is just launched:

Mamedio International

It has various style for both Bikini and One Piece. And the site owner pays much effort on showing you how good fit their products are with modal wearing their products and having attractive shot from different perspectives:

Mamedio International Lookbook

The story of Mamedio is just begins, apart from assisting the store for initial launch (both Internation and Brasil site), I am going to strength the site by further enhancing the SEO aspect, and facilitate the site owner to manage their stores easier.

Heroku + Laravel + bower/gulp(nodeJS) require multiple buildpack

Heroku has official document to teach how to get Laravel work on Heroku platform. But if you has Bower / Gulp for your Laravel project, you need to set the app to run with php buildpack, you also need to run this to get your app run as NodeJs app:

$ heroku buildpacks:add –index 1 heroku/nodejs

Once you have this setting effect for your app, you can utilize package.json to have this to run the bower and gulp:

“scripts”: {
“postinstall”: “bower install && gulp”
}

 

Shopify plans pricing change and comparsion

Shopify changes their pricing on 1 Jun 2016. The plans’ name are changed accordingly: Basic Shopify, Shopify and Advanced Shopify. It still has 14 days trial, and of course, the most economic and clever way is to contact a Shopify Expert to work with you for a longer trial period for the store development.

From previous experience, most of my client would just need the Basic Shopify plan, as they only put items in store without need for detail report or gift card support. If clients need specific feature that only available in particular Shopify plan, before suggesting them to select the plan with that specific feature, I would show them the different of the potential cost among different plans.

I have the sheet below which I wrote for a client who original  have the Unlimited Shopify Plan (Advanced Plan) and consider how would it be different for his store if he downgrade his plan.

In the sheet, I have 3 tables:

  1. $299 Plan and $79 Plan the change in total running cost
  2. $29 Plan and $79 Plan the change in total running cost
  3. $179Plan and $79 Plan the change in total running cost

Screen Shot 2016-06-03 at 上午7.50.52

In each table, I show the plan cost, the gross transaction, the corresponding transaction fee (using third party payment like PayPal / PayDollar) and the total store running cost. You can see if your store has around HKD$350000 or USD $44872 gross transaction. Use $299 plan would be more economic.

So if you are running very simple Shopify store with $29/mo, if your monthly transaction is more then HKD$30000 or USD$3846, using $79 would be more economic.

For my client, he is currently using the old Unlimited $179 Plan, Shopify does not change this monthly price unless he changes the plan; When I help review, his plan will only be economic to him if his business cans produce $157000 gross sale per month. Yet, his business is still require some time to reach this sale level, and he needs not the advanced report feature, I recommend him to downgrade the plan so as to save the cost.

For my client, he is delighted to see this information and suggested arrangement for him; For me, my monthly commission is actually reduced by almost half. However, I believe this is definitely good for my client so as to help them running their business in lower cost. The lower the cost for their business, the higher the chance of success of their Shopify business.

 

看「民王」的共鳴感

Tamiou

這是一齣你可以當政治片來看時,他是一齣無里頭笑片;
當你當他是無里頭笑片來看時,他瞬時道出滿帶義理的政治論說。
當領導不再是領導本身,身份被人替換了,這會是一個什麼境況?這就是編劇想營造的一個局面,將一個對政治不敏感的個體,與在政壇上滿有抱負的新上任總理之身份對調,從對調過程中娓娓道出領導者應有的角色責任。

從第一集起,一句典型的「我跟你不一樣」帶出總理跟其兒子之間的矛盾。兒子離家凄身一間將近倒閉的民間食店埋首其自身興趣,遠離身為一國之首的父親。但暗黑勢力將他們身份對調使,讓一個不黯政事的兒子當上了政壇領導。正因著這樣的經歷,兒子領會到父親在政壇上面對的各種難題。然而對比父親的強硬政治野心,在忠心耿耿的助手幫協助之下,父親以為能讓兒子替代自己來執行自己的政事險境之時,兒子卻以自己的心態,以另一種總理意料之外的方式將種種險境化解。

說實,故事路線是大路的。你大概猜想得到總理作為父親由兒子角度出發,兒子又體會父親更多而冰釋前嫌。然後廿土木山調魔咒化解,得出大團圓結局。這些,留待大家細看。然而我欣賞這套電視劇,要拍案叫絕的位置,隨了每集在兒子身上的總理,於不同場合爆Seed位,還有演員的演技。

單看宣傳圖像,遠藤憲一是個「鱷魚面」的老練政客款。要是這是政治片,這個嘴面最切合不過。然而這故事要他扮演廿多歲的爛泥青年,既怯懦又行為閃縮,這綠葉派的演技讓人絕大部份時間都代入了其替掉的身份。實在,單看他不斷扮演「怯懦閃縮」與「政壇霸者」這兩種身份的交替經已劇集的精華。相對地,菅田將暉要由廢青扮演成政壇老手的能力相對較易,而難度在於他如何「繼承」父親說話的霸氣。

故事討論過金融體系與中小企業作為經濟重振中該扮演的位置;替單親母親道出在職場上面對的處境及至作為公司領導者應如對待下屬員工這份最重要的資產這經營之道;在上市公司為盈利遺忘初衷時論及企業理念和個人志向;與及總理與國會在民生方面應負擔的責任。這些命題,不單發生在日本,在香港也是適用。這亦是我一直看著一直響出共鳴感。(待續)

NodeJs In Action 聊天室範例 (使用Socket.io with v1.4.5)

最近想深化對 NodeJS 的基本認知,參考一本 NodeJS In Action 的書,當中有一個聊天室範例應用到 Socket 。依據範例做當然錯不了,但範例使用的 Socket.io 版本是舊版本  (0.9.6),當昇級至 1.x (比如1.4.5),運行時便有林林種種的問題。

因此我以範例作根本,以 Socket.io 1.4.5 的方法編寫了能運行的 Example:

https://github.com/gordonchanhk/NodeJsInActionChatRoomExample

nodejs-in-action-chatroom