Thursday, June 8, 2017

JetBrains

JetBrains (formerly IntelliJ) is a software development company whose tools are targeted towards software developers and project managers.[1][2]
As of 2015, the company has over 500[3] employees in its six offices:[4] in Prague, Saint Petersburg,[5] Moscow, Munich, Boston[6] and Novosibirsk.
The company offers an extended family of integrated development environments (IDEs) for the programming languages Java, Ruby, Python, PHP, SQL, Objective-C, C++, and JavaScript. The company is also currently developing IDEs for languages including C# (Rider) and GO (Gogland), which are currently offered as public betas for purposes of testing.
In 2011 the company entered a new area by introducing Kotlin, a programming language that runs in a Java virtual machine (JVM).
InfoWorld magazine awarded the firm "Technology of the Year Award" in 2015 and 2011.[7][8]

Contents

History

JetBrains, initially called IntelliJ,[9] was founded in 2000 in Prague by three software developers:[10] Sergey Dmitriev, Valentin Kipiatkov and Eugene Belyaev.[11]
The company's first product was IntelliJ Renamer, a tool for code refactoring in Java.[2]
In 2012, after having been the company's CEO for 12 years, Sergey Dmitriev entrusted the company to two newly appointed CEOs, Oleg Stepanov and Maxim Shafirov, and devoted himself to his scientific endeavors in the field of bioinformatics.[12][13]

Products

In addition to aforementioned products, JetBrains are also the makers of tools for .NET Framework developers, including ReSharper, dotTrace, dotMemory, dotCover and dotPeek, plus team development tools: TeamCity for continuous integration and build management, YouTrack for issue tracking and Upsource for code review.[14][15]

AppCode

AppCode is an IDE primarily targeting development for Apple platforms like macOS, iOS, watchOS and tvOS. It supports programming in C, C++, Objective-C and Swift. Unlike most JetBrains that are cross-platform AppCode is only available for macOS.

CLion

CLion (pronounced "sea lion") is a cross-platform C and C++ IDE for Linux, OS X, and Windows integrated with the CMake build system.[16][17] The initial version supports GNU Compiler Collection (GCC) and Clang compilers and GDB debugger, LLDB and Google Test. Forrester Research analyst Michael Facemire expressed doubts about the product's potential.[18]

DataGrip

DataGrip is a cross-platform IDE that is aimed at DBAs and developers working with SQL databases. It has built-in drivers that support DB2, Derby, H2, HSQLDB, MySQL, Oracle, PostgreSQL, SQL Server, Sqlite and Sybase.

Hub

Hub is a free JetBrains Team Tools connector. It enables advanced integration between JetBrains team collaboration tools: YouTrack, Upsource, Teamcity. A user can log in once in Hub and stay authenticated in all JetBrains tools throughout. Hub also manages a single database of users, groups, roles, permissions, projects, and shares it among all connected YouTrack and Upsource installations. It provides a Dashboard to track issues, commits, build status and more data from YouTrack, TeamCity and Upsource.

IntelliJ IDEA

IntelliJ IDEA was JetBrain's first IDE. It is cross-platform and is primarily aimed at Java, Java EE and web development. An open-source version is available under the name IntelliJ IDEA Community Edition, and a proprietary version as IntelliJ IDEA Ultimate Edition. IntelliJ IDEA Ultimate Edition can be made to include the feature set of PhpStorm, PyCharm and RubyMine via plugins.

Kotlin

Kotlin is a statically-typed programming language that runs on the Java Virtual Machine and also can be compiled to JavaScript source code. The name comes from the Kotlin Island, near St. Petersburg.
Kotlin is designed to be an industrial-strength object-oriented language, and a "better language" than Java, but still be fully interoperable with Java code, allowing companies to make a gradual migration from Java to Kotlin.

MPS

MPS (Meta Programming System) is an open-source language workbench that focuses on Domain-specific Languages (DSLs). It leverages projectional editing instead of classical textual editing offering easy language composition, multiple code visualizations as well as various non-textual notations for DSL designers. MPS comes with its own Code Generation engine, which can be used to provide semantics for MPS-based DSLs. In addition to editor & generator declaration, MPS provides the possibility to capture information about other language aspects like: type-system, constraints, data flow and others.

PhpStorm

PhpStorm is a cross-platform IDE for PHP and web development. It supports PHP 5.3, 5.4, 5.5, 5.6, 7.0 and 7.1.[19]

PyCharm

PyCharm is a cross-platform IDE that is primarily targeted for Python and web development. An open source version is available as PyCharm Community Edition, and a proprietary version as PyCharm Professional Edition.[20] A special version called PyCharm Edu is based on PyCharm aimed specifically at learning programming with Python.[21]

ReSharper Ultimate

ReSharper Ultimate is a group of products containing ReSharper, the award-winning [22] plugin for Visual Studio, dotCover, a code coverage tool, dotMemory, a memory profiler, dotTrace, a performance profiler and dotPeek, a disassembler. ReSharper provides a series of features for Visual Studio developers including code analysis, refactoring, navigation, test runner, build runner and more.

Rider

Rider is an upcoming cross-platform IDE intended for C# and .NET development that is currently in preview.[23]

RubyMine

RubyMine is a cross-platform IDE that supports Ruby, Ruby on Rails and web development.

TeamCity

TeamCity is a continuous integration and continuous delivery server developed by JetBrains. It is a server-based web application written in Java. TeamCity is a proprietary commercial software with a Freemium license for up to 20 build configurations and 3 free Build Agents.

Toolbox App

Toolbox App is an application that facilitates easy installation and uninstallation of JetBrains IDEs. It allows users to log in with a JetBrains account and install all of the products they own.

Upsource

Upsource is a code review and repository browsing tool. It provides a UI for exploring and monitoring Git, GitHub, Mercurial, Perforce and/or Subversion repositories from a central location. Upsource provides syntax highlighting for multiple programming languages. Having IntelliJ IDEA core in it, Upsource provides server-side static code analysis, code-aware navigation, and search for usages for Java, PHP, JavaScript and Kotlin languages.

WebStorm

WebStorm is a cross-platform IDE primarily for web, JavaScript and TypeScript development. Many of JetBrain's other IDEs include the feature set of WebStorm via plugins.

YouTrack

YouTrack is a proprietary, commercial web-based bug tracker, issue tracking system, and agile project management software developed by JetBrains. It focuses on development teams, providing them with query-based issue search with auto-completion, manipulating issues in batches,[2] extended keyboard-shortcuts support, customizing the set of issue attributes,[3] and creating custom workflows.[4] YouTrack provides support for both Scrum and Kanban methodologies and allows to follow a custom process. YouTrack is localized into English, German, Russian, Spanish and French. YouTrack is available as SaaS and on-premises. Free version includes up to 10 users.

Revenue model

JetBrains IDEs have several license options, which feature same software abilities and differ in their price and terms of use. The team products are available as hosted and installed versions and have free versions for small teams.[24][25] All products are free for open source projects and educational institutions.[26]
IntelliJ IDEA Ultimate is one of the only paid products in a field of free or open source options.[8][27][28]

Open source projects

In 2009, JetBrains open-sourced the core functionality of IntelliJ IDEA by offering the free Community Edition.[26][29] It is built on the IntelliJ Platform and includes its sources. JetBrains released both under Apache License 2.0.[30] In 2010, Android support became a part of the Community Edition,[31] and two years later Google announced[32] its Android Studio, the IDE for mobile development on Android platform built on the Community Edition of IntelliJ IDEA and an official alternative to Eclipse Android Developer Tool.[33] In June 2015, it was announced that the support of Eclipse ADT will be discontinued making the Android Studio the official tool for Android App development.[34]
MPS, short for meta programming system, and Kotlin, a statically typed programming language for JVM, are both open source and non-commercial.[35][36]

Past projects

Fabrique is a rapid application development (RAD) software framework for building custom web and enterprise applications.[37] Introduced in 2004,[37] it is apparently dead since 2008.
Omea is a desktop-based reader and organizer for RSS (and later of every bit of information that comes across one’s desktop),[38] the first[39] and so far the only consumer-oriented product from JetBrains. Introduced in 2004, it failed to gain expected popularity.[38] In 2008, having reached v 2.2, Omea was open-sourced under the GNU General Public License (GPL) v2.[40] The product is still available for download, and after the retirement[41] of Google Reader, has gained some attention again.[38][42]
Astella is an IDE for Adobe Flash and Apache Flex. This most short-lived JetBrains product was announced in October 2011,[43] just a month before Adobe Systems killed Mobile Flash.[44]

Wednesday, June 7, 2017

Build Complete Web Solutions

  1. About This Specialization

    Learn front-end and mobile hybrid development, build back-end support, and implement a fully functional application.

    The first two courses in this Specialization include an orientation to client-side development, covering HTML/CSS, JavaScript/JQuery, and frameworks such as AngularJS and Bootstrap. On the server side, you’ll learn to implement NoSQL databases using MongoDB, work within a Node.js environment, and communicate to the client side through a RESTful API. You’ll also learn to create hybrid mobile applications, using the Ionic framework and Cordova. In the final Capstone Project, you’ll apply your skills to build a fully functional web and hybrid mobile application with back-end support.
    Created by:
    Industry Partners:
    courses
    6 courses
    Follow the suggested order or choose your own.
    projects
    Projects
    Designed to help you practice and apply the skills you learn.
    certificates
    Certificates
    Highlight your new skills on your resume or LinkedIn.
    Courses
    Intermediate Specialization.
    Some related experience required.
    1. COURSE 1

      HTML, CSS and JavaScript

      Upcoming session: Jun 16 — Jul 17.
      Commitment
      3 weeks of study, 3-4 hours/week
      Subtitles
      English, Portuguese (Brazilian), Chinese (Simplified)

      About the Course

      This course will teach you the essential elements of web page development, covering HTML, CSS and JavaScript. No previous experience of these technologies is necessary, although it is helpful if you have some prior programming experience. First, HTML together with CSS are discussed and explored. Then we move on to consider the essential components of JavaScript, including variables, arrays, loops, events and functions. Then we explore more advanced elements of JavaScript control, including advanced use of functions, event control, array processing, and DOM manipulation. After completing this course, you will be able to: - Create a web page using HTML elements - Be able to apply CSS (style sheet rules) to parts of a web page, for altering display and behavior - Be able to program interactive JavaScript in a web page
  2. Show or hide details about course HTML, CSS and JavaScript
  3. COURSE 2

    Front-End Web UI Frameworks and Tools

    Upcoming session: Jun 12 — Jul 17.
    Commitment
    4 weeks of study, 3-4 hours/week
    Subtitles
    English, Chinese (Simplified)

    About the Course

    This course will give you an overview of client-side web frameworks, in particular Bootstrap. You will learn about grids and responsive design, Bootstrap CSS and JavaScript components. You will learn about CSS preprocessors, Less and Sass. You will also learn the basics of Node.js and NPM and learn about Web tools like Bower. At the end of this course, you will be able to: - Set up, design and style a web page using Bootstrap and its components - Create a responsive web page design - Make use of web tools to setup and manage web sites
  4. Show or hide details about course Front-End Web UI Frameworks and Tools
  5. COURSE 3

    Front-End JavaScript Frameworks: AngularJS

    Current session: Jun 5 — Jul 10.
    Commitment
    4 weeks of study, 5-6 hours/week
    Subtitles
    English

    About the Course

    This course concentrates mainly on Javascript based front-end frameworks, and in particular, AngularJS, the most popular among them. We will review the model view controller (MVC) design-pattern in the context of AngularJS. You will be introduced to various aspects of AngularJS including two-way data binding and angular directives and filters. You will then be introduced to angular controllers and scopes. UI routing and templates will then be reviewed. Finally we will look at angular modules and services. Single page application (SPA) development using Angular will also be explored. You must have either completed the previous course in the specialization on Bootstrap, or have a working knowledge of Bootstrap to be able to navigate this course. At the end of this course you will: - Be familiar with client-side Javascript frameworks and the MVC design pattern - Be able to implement single page applications in AngularJS - Be able to use various Angular features including directives, filters, controllers, scope and routing - Be able to implement a functional front-end web application using AngularJS
  6. Show or hide details about course Front-End JavaScript Frameworks: AngularJS
  7. COURSE 4

    Multiplatform Mobile App Development with Web Technologies

    Upcoming session: Jun 12 — Jul 17.
    Commitment
    4 weeks of study, 2-4 hours/week
    Subtitles
    English

    About the Course

    This course focuses on developing multiplatform mobile applications using the Web skills (HTML5, CSS and Javascript) that you have already acquired so far in the previous courses of this specialization. In particular we make use of the Cordova hybrid application framework to develop and target multiple mobile platforms with a single codebase. We make use of the Ionic framework, one of fastest growing mobile application frameworks, that is built with mobile-optimized HTML5 and CSS based components and AngularJS. You will learn about UI development with Ionic and then using Cordova's modules to access the native mobile platform's capabilities from Javascript. You should have already completed the Bootstrap and the AngularJS courses in this specialization before proceeding with this course. Alternately you should already have sufficient knowledge of Bootstrap and AngularJS before you proceed with this course. At the end of this course you will be able to: - Build mobile applications targeting multiple platforms with a single codebase - Leverage your HTML5, CSS, Javascript and AngularJS skills - Use various features of the Ionic framework to build hybrid mobile applications
  8. Show or hide details about course Multiplatform Mobile App Development with Web Technologies
  9. COURSE 5

    Server-side Development with NodeJS

    Current session: Jun 5 — Jul 10.
    Subtitles
    English

    About the Course

    This course deals with all things server-side. We base the entire course around the NodeJS platform. We start with a brief overview of the Web protocols: HTTP and HTTPS. We examine NodeJS and NodeJS modules: Express for building web servers. On the database side, we review basic CRUD operations, NoSQL databases, in particular MongoDB and Mongoose for accessing MongoDB from NodeJS. We examine the REST concepts and building a RESTful API. We touch upon authentication and security. Finally we review backend as a service (BaaS) approaches, including mobile BaaS, both open-source and commercial BaaS services. At the end of this course, you will be able to: - Demonstrate an understanding of server-side concepts, CRUD and REST - Build and configure a backend server using NodeJS framework - Build a RESTful API for the front-end to access backend services
  10. Show or hide details about course Server-side Development with NodeJS
  11. COURSE 6

    Full Stack Web Development Specialization Capstone Project

    Upcoming session: Jul 10 — Sep 11.
    Commitment
    8 weeks of study, 3-5 hours/week
    Subtitles
    English

    About the Capstone Project

    The Capstone project is the culmination of your journey through the Full Stack Web Development specialization. The Capstone project is aimed at building a fully functional front-end Application (both Web App designed using Bootstrap+AngularJS, and hybrid mobile app implemented using the Ionic framework) and full server-side implementation using Node.js+Express+MongoDB (possibly using a higher level framework). The project provides you an opportunity to demonstrate the skills that you have acquired from the courses within the specialization. As a student in this course, you are being provided the opportunity to access IBM Bluemix® platform-as-a-service trial for up to six months at no-charge with no credit card (up to a $1500 value).
  12. Show or hide details about course Full Stack Web Development Specialization Capstone Project

Xu hướng công nghệ lập trình web và mobile 2016

Xu hướng công nghệ web 2016
Xu hướng công nghệ lập trình web và mobile 2016

Xu hướng công nghệ lập trình

Xu hướng lập trình thì thường xoay quanh ngôn ngữ lập trình, tuy nhiên trong bài viết này mình tập trung nói về các công nghệ giúp cho việc lập trình dễ dàng hơn như cải thiện tốc độ, chất lượng code cũng như dễ dàng cộng tác, làm việc nhóm. Những vấn đề về xu hướng công nghệ lập trình sẽ giúp bạn nâng cao khả năng lập trình cũng như chất lượng dự án.

Môi trường phát triển

  • [Môi trường chạy code, build] VagrantDocker: mặc dù sự phát triển rất mạnh của docker trong năm 2015, nhưng với sự khác biệt giữa Docker và Vagrant thì mỗi môi trường đều sử dụng cho từng mục đích phù hợp. Một số bạn vẫn còn sử dụng máy cá nhân để cài đặt môi trường phát triển vẫn ổn, tuy nhiên sẽ rất khó cộng tác với các thành viên khác trong nhóm vì không thông nhất được môi trường phát triển.  Nếu bạn vẫn chưa sử dụng 1 trong 2 công nghệ này, thì hãy tìm hiểu và áp dụng càng sớm càng tốt nhé. Mình có xu hướng ủng hộ Docker hơn vì tính đa năng và dễ làm việc cộng tác.
  • [Task Runner/Automation] GruntGulp: Cả 2 công cụ này với hàng ngàn plugin hỗ trợ giúp cho việc phát triển lập trình dễ dàng nhanh chóng khi tự động debug, test, build. Mình thiên về Gulp vì việc cấu hình tương tự như ngôn ngữ lập trình chứ không phải Over Configure phức tạp của Grunt.
  • [IDE] Atom, Sublime Text: trước đây mình sử dụng khá nhiều IDE cho việc phát triển, lập trình web như Aptana Studio, Zend Studio, PHP Storm, Text Wrangler nhưng đều không đáp ứng nhu cầu công việc. Hoặc là nặng nề, chậm chạp hoặc thiếu plugin cần thiết, nhưng với Sublime Text thì mình hoàn toàn làm chủ được việc lập trình, Atom thì có xu hướng phát triển mạnh trong năm 2015 vừa rồi tuy khá mạnh mẽ nhưng do còn mới nên lượng plugin không phong phú bằng. Điểm mạnh của Atom là open source/free, nên mình dự đoán khi cộng đồng phát triển nhiều plugin thì sẽ có nhiều lập trình viên sử dụng hơn trong năm 2016 này.

Frontend Javascript Framework

  • Angular Js/2[Beta]: Với lượng fan cực khủng từ 1.x, nên cùng những tính năng nổi trội từ phiên bản 2: nhanh và uyển chuyển, nâng cấp được từ 1.x, có thể render từ server, hỗ trợ TypeScript (chính) & Dart sẽ giúp cho AngularJs/2 tiếp tục củng cố thị phần của mình.
  • React Js: Được sử dụng cho các sản phẩm chính thức của các tên tuổi lớn Facebook, Instagram, Mapbox, Box, Paypal, Reddit… [Xem thêm tại đây], phải nói rằng sự phát triển của ReactJs nhanh hơn rất nhiều so với AngularJs thời đầu [Mặc dù chỉ là phần V trong MVC]. Theo cá nhân mình, ReactJs sẽ tiếp tục phát triển mạnh mẽ trong các năm tiếp theo. Đọc thêm bài React là quyết định của doanh nghiệp, không hẳn là sự lựa chọn do công nghệ.
  • Polymer Project: không nổi tiếng như 2 anh chàng trên, nhưng với xu hướng lập trình web component, Polymer sẽ dần có chỗ đứng vì bản chất là component sẽ giúp cho nó hoạt động 1 cách độc lập không phụ thuộc các frontend framework khác và đặc biệt là hỗ trợ hoàn toàn Material Design

Ngôn ngữ lập trình

  • Javascript: với hi vọng là ngôn ngữ của tất cả, điều này chắc chắn gây tranh cãi :), nhưng… Tuy nhiên với sự ra đời Ecma Script 6(ES6) trong năm vừa rồi, đã đưa javascript lên đẳng cấp mới với những tính năng mới lạ như Arrow, Class, xử lý chuỗi dễ dàng, giá trị tham số (mặc định, không xác định, thông qua phần từ của mảng), Promise, Map, Module… . Những đặc tính của Javascript được sử dụng cho cả browser và server với Nodejs/V8 giúp cho việc sử dụng lại code chung logic cho cả browser và server, giúp cho việc phát triển ứng dụng web chạy nhanh, thời gian phát triển, lập trình nhanh. Với sự hỗ trợ từ V8/V8Js cho PHP, Python… việc thực thi javascript từ server không còn là mảnh đất riêng của Nodejs nữa!
  • PHP 7: được chờ đợi nhất trong năm 2015 của dân lập trình PHP, việc ra đời chính thức phiên bản 7 đã giúp ngôn ngữ PHP nâng cao vị thế với các ngôn ngữ phát triển web như Rails, Python, Java, Nodejs, .Net, … . Với việc thay đổi cấu trúc khai báo hàm (Scalar Type Hints & Return Types) giúp cho PHP thoát kiếp “ngôn ngữ không chặt chẽ”, cùng với sự cải thiện tốc độ gấp đôi so với PHP 5.x đã khiến mình không còn khái niệm nghiên cứu thêm ngôn ngữ khác nhanh hơn nữa. Tuy nhiên một số PHP Framework có thể mất thêm 1 thời gian ngắn nữa để hoàn toàn tương thích với PHP7. Đối với các phiên bản PHP Framework còn hỗ trợ PHP 5.3 thì khả năng sẽ không chạy tốt trên PHP 7, vì PHP 7 đã loại bỏ các hàm deprecated từ PHP 5.3.
  • Swift 3: Sự phát triển ngôn ngữ lập trình iOS mới này sẽ bước lên phiên bản 3 dự kiến vào mùa thu 2016. Với Swift, rõ ràng việc phát triển các sản phẩm cho iOS tiện lợi và nhanh chóng hơn rất nhiều. Mặc dù Objective-C chưa có thông báo hồi kết, nhưng với những đặc tính nổi trội của Swift và cũng như động thái phát triển lên phiên bản 3 đã cho thấy Apple đang tập trung vào Swift rất nhiều. Nếu bạn vẫn đang còn sử dụng Objective-C để phát triển cho iOS, hãy dành thời gian nghiên cứu xu hướng Swift!
  • Sự phát triển ổn định của Python 3, Rails 4, Java thì không có gì đáng chờ đợi trong năm 2016 cả!

React Js/React Native [Mobile/Web/Desktop and …smartWatch or smartTv !!!]

Mình chia React Native ra thành một mục riêng vì đây không phải là một ngôn ngữ lập trình mà là một nền tảng để phát triển sản phẩm di động “native”, web, desktop và… bằng Javascript. Trước đây, để phát triển sản phẩm mobile [iOS/Android] “hybrid” bằng javascript có thể dùng Phonegap/Cordova với một số framework nổi tiếng như Ionic Framework hay Onsen UI, hoặc jQuery Mobile. Tuy nhiên, điểm yếu của Hybrid là tốc độ chậm vì phải thông qua Phonegap/Cordova và không hỗ trợ một vài tính năng native (Ví dụ: với Phonegap/Cordova phải mở Apple Map trong iOS, với React Native thì có thể chạy Apple Map ngay trong chính ứng dụng).
Tất nhiên, React Js và React Native là khác nhau, nhưng sự kết hợp của 2 framework này giúp chúng ta có thể build ứng dụng cho Web, Desktop [Node Webkit], Mobile Native chỉ bằng Javascript, với việc dùng lại code tới 80%, đúng như câu “learn once, write anywhere.” (học một lần, viết mọi nơi). Bạn có thể tham khảo dự án này: Calculate for web, mobile, desktop.

Kết luận

Với những xu hướng công nghệ lập trình web trên có thể cho những lập trình fullstack có thể kiếm thêm thu nhập cho những dự án riêng ngoài thời gian làm việc cho công ty. Riêng mình thì đặc biệt quan tâm nhóm javascript với nhóm “React Js/React Native/Nodejs/Node Webkit”. Nhóm này có thể build ra 1 ứng dụng từ A->Z chỉ với Javascript, đúng với chủ trương của full stack: càng đơn giản càng kiếm được nhiều.
Còn bạn có những xu hướng lập trình gì để chờ đợi trong 2016, hãy chia sẽ với mọi người nhé. Fullstack Station sẽ cố gắng cập nhật những công nghệ fullstack cho các bạn nhanh nhất có thể.

Sự khác nhau giữa Native App, Mobile web app và Hybrid app

Theo báo cáo của Appota thì Gần 1/2 Lập Trình Viên di động viết App bằng Native.
Vậy, Native app , Mobile web app hay Hybrid app là gì?
Native App, Mobile web app, Hybrid App (ứng dụng lai), là những khái niệm cơ bản của lập trình di động. Dựa trên ngôn ngữ lập trình, có thể chia mobile app làm 3 loại: bao gồm: ứng dụng gốc (Native App), ứng dụng web (Web App) và ứng dụng lai (Hybrid App). Trong đó có hơn 1 nửa mobile dev chọn làm ứng dụng native.

Ứng dụng gốc (Native App)

Là những ứng dụng được viết riêng cho một loại nền tảng như iOS, Android, Windows Phone bằng các ngôn ngữ tương ứng của mỗi nền tảng đó ví dụ Java trên Android, Object C trên iOS, C# trên winphone. Mỗi Native App chỉ chạy được trên một nền tảng và không thể mang sang các nền tảng khác. Ví dụ game cho iOS sẽ không thể chạy được trên các máy Android. Đa phần các game mobile hiện nay là Native App.
Điểm mạnh:
– Về mặt performance thì native app chạy nhanh hơn mobile app trong hầu hết trường hợp. Tuy nhiên sự chênh lệch ở các ứng dụng có thể là nhỏ, chấp nhận được và khó nhận biết bởi người dùng. Hiện tại, với game thì native app vượt bậc và thắng tuyệt đối.
– Về tính năng native app có khả năng truy cập các phần cứng (như camera, GPS, thiết bị thu âm… ) và có thể truy cập đến các quyền local như : sao chép, tạo, ghi, đọc tập tin (trên bộ nhớ của mobile), các thông tin danh bạ, thông tin cá nhân, thực hiện cuộc gọi, nhắn tin… Nói cách khác, native app có thể khai thác được sức mạnh phần cứng nhiều nhất của nền tảng. Trong khi Mobile Web app thì không thể (có trường hợp có thể đọc file, như upload).
– Ở chế độ offline: Native app có lợi thế so với mobile web app (luôn phải chạy online). Ở offline-mode, native app sẽ dùng những dữ liệu đã cache trước đó ở lần cuối cùng mà người dùng truy cập online.
Điểm yếu:
– Không thể cross platform: một native app chỉ có thể chạy trên một hệ điều hành nhất định.
– Với mỗi HDH thì người lập trình phải viết riêng native code cho nó, dẫn đến không nhất quán giữa các phiên bản ứng dụng, chi phí phát triển cao và đòi hỏi khả năng thành thạo nhiều ngôn ngữ ở lập trình viên. Đôi khi đòi hỏi lập trình viên phải sử dụng những công cụ độc quyền và chỉ được làm việc trên một môi trường duy nhất như: dùng xcode trên Mac OS (nếu bạn muốn phát triển ứng dụng cho iOS).
– Hơn nữa, việc bảo trì hay nâng cấp sẽ làm mất nhiều thời gian. Do phải sửa chữa từng app trên từng HDH, thủ tục đưa lên chợ ứng dụng và chờ đợi approval (đôi khi bị reject vì vi phạm một số điều lệ của chợ ứng dụng), nên bản cập nhật không đến tay người dùng ngay lập tức, hơn nữa họ phải tự update khi vào chợ ứng dụng.
– Tính đa dạng phiên bản của HDH làm cản trở việc phổ dụng các native app. Các thiết bị chạy phiên bản HDH cũ hơn sẽ không cài đặt được.
Ứng dụng web (Web-based app)
Là ứng dụng chạy trên nền web, được viết bằng các ngôn ngữ web như HTML5, CSS, javascript hoặc jQuery Mobile. Về cơ bản là website với giao diện giống như app và nội dung được load từ web. Ứng dụng web dễ hình dung nhất là m.facebook.com
Điểm mạnh:
– Cross platform: Có thể chạy trên tất cả trình duyệt của mobile hỗ trợ phiên bản HTML và javascript.
– Không cần cài đặt trên máy.
– Thuận lợi cho các nhà phát triển:
+ Với một phiên bản duy nhất cho tất cả, nên giảm chi phí và thời gian cho phát triển, bảo trì, cũng như nâng cấp sau này.
+ Ngôn ngữ lập trình phổ dụng là HTML và Javascript mà hầu hết các lập trình viên đều biết.
+ Không giới hạn môi trường lập trình, lập trình viên có thể làm việc trên hầu hết các HDH.
+ Ứng dụng không cần phải được build lại qua SDK hoặc một công cụ phát triển độc quyền khác như xCode (chỉ cần deploy lên server và chạy).
+ Việc cập nhật phiên bản sẽ đến ngay lập tức và trong suốt với người dùng (ngay sau khi deploy) mà không cần thông qua thủ tục và chờ đợi approval như các chợ ứng dụng.
– Có thể được đánh dấu bởi search engines (tốt cho SEO).
– Dễ dàng quảng bá: người dùng có thể tìm thấy thông qua search engine, share link từ email, từ social netwoks hoặc từ các dich vụ quảng cáo trực tuyến như Google Ads.
Điểm yếu:
Mặc dù HTML5 có tính tương thích rộng lớn nhưng cùng với đó là cả điểm yếu. Nó phụ thuộc vào trình duyệt, nền tảng, loại máy. Đặc biệt khi mức độ phân mảnh thị trường của các thiết bị di động lớn như hiện nay lại càng làm các nhà lập trình khó khăn trong việc lựa chọn đúng phần nào của HTML5 có thể sử dụng.
– Về performance, web-based app khôngchạy nhanh như native app, và không mang lại trải nghiệm trọn vẹn mà nền tảng đó có thể cung cấp, đây cũng là lý do mà hầu hết các mobile game đều không dùng web app. – Luôn phải chạy online. Khi mạng chập chờn thì ứng dụng web cũng ngay lập tức thể hiện điểm yếu của mình.
facebook_native_mobile_web_app
Không có sự khác nhau quá nhiều giữa giao diện Native App và Mobile web App

Ứng dụng lai (Hybrid App )

Hybrid App là ứng dụng kết hợp những ưu điểm của cả Mobile Web App và Native App. Theo đó, các phần cơ bản của ứng dụng vẫn viết bằng ngôn ngữ web, nhưng được đặt trong native container, nên vẫn có thể dưa lên kho tải.
Ưu điểm:
Hybrid có thể kết hợp điểm mạnh của cả native app và mobile app và khai thác được trải nghiệm cao nhất của nền tảng.
Ví dụ như: Hiển thị nội dung trên tất cả các thiết bị di động, tận dụng tối đa các tính năng của thiết bị di động như GPS, Camera, cảm biến gia tốc… điều này không thể làm được trên mobile web, sử dụng ứng dụng ngay cả khi không có kết nối internet. Những ứng dụng mobile của một số trang tin tức hiện nay như Vnexpress, Dantri v.v.. đều là những ứng dụng lai.

Sự khác biệt giữa Web Site và Web Application

Hiện nay một số bạn học ngành IT vẫn còn lẫn lộn giữa khái niệm website và web app, sẵn tiện có một bạn hỏi nên mình viết bài này nhân tiện giải thích luôn.
Đây là một câu hỏi “tưởng dễ mà không phải dễ”, bởi vì ranh giới giữa website và webapp khá mong manh. Mình phải tổng hợp khá nhiều câu trả lời từ stackoverflow và programmers.stackexchange mới đưa ra được một câu trả lời “gần đúng” nhất.

1. Khái niệm website

Ngày xưa ngày xưa, khi Internet còn thô sơ, web được viết bằng html đơn lẻ. Mỗi trang web đơn lẻ được viết bằng html gọi là Web Page. Tập hợp nhiều trang web đơn lẻ, thành một trang web lớn, có chung tên miền, được gọi là Website. VD đơn giản: Mỗi bài viết trên blog của mình chính là một web page, tập hợp toàn bộ các bài viết lại chính là một website, tên là toidicodedao.com.

cost-of-websites1

2. Khái niệm webapp

Đầu tiên, ta hãy xem lại khái niệm application (trên wiki).
Ứng dụng là một loại chương trình có khả năng làm cho máy tính thực hiện trực tiếp một công việc nào đó người dùng muốn thực hiện
Ban đầu, các website chỉ bao gồm text, hình ảnh và video, liên kết với nhau thông qua các link. Tác dụng của website là lưu trữ và hiển thị thông tin. Người dùng chỉ có thể đọc, xem, click các link để di chuyển giữa các page.
Về sau, với sự ra đời của các ngôn ngữ server: CGI, Perl, PHP, … các website đã trở nên “động” hơn, có thể tương tác với người dùng. Từ đây, người dùng có thể dùng web để “thực hiện một công việc nào đó bằng máy tính“, do đó web app ra đời.
Web_Application_Development
Nói dễ hiểu, web app là những ứng dụng chạy trên web. Thông qua web app, người dùng có thể thực hiện một số công việc: tính toán, chia sẻ hình ảnh, mua sắm … Tính tương tác của web app cao hơn website rất nhiều.
Với một số người không rành về IT, tất cả những thứ online, vào được bằng trình duyệt đều là website cả. Do đó họ thường yêu cầu bạn là: website quản lý siêu thị, website bán hàng, … thực chất chúng đều là webapp hết.

3. So sánh website và web app

Trên thực tế, ranh giới giữa web app và website khá mong manh. Một trang báo mạng – vnexpress chẳng hạn, trong mắt người đọc nó là website. Nhưng trong mắt biên tập viên hoặc admin, nó lại là web app. Một số trang web cho phép người dùng search, comment nhưng nó vẫn chỉ là website, chưa phải là webapp. Dưới đây là bảng so sánh (tương đối).
Web site Web app
Tính tương tác thấp, ít chức năng (Xem, đọc, click qua lại giữa các link…) Tính tương tác cao, nhiều chức năng (Đăng thông tin, upload file, xuất báo cáo…)
Được tạo thành từ các trang html tĩnh và một số tài nguyên (hình ảnh, âm thanh, video) Được tạo bởi html và code ở back end (PHP, C#, Java, …)
Được dùng để lưu trữ, hiển thị thông tin Được dùng để “thực hiện một công việc”, thực hiện các chức năng của một ứng dụng
6a0133f4b0d0bd970b014e88f5cbd5970d-800wi
Ý sau của câu hỏi: ” Những kĩ năng cần có nếu muốn trở thành Web Developers” sẽ được trả lời trong bài viết sau nhé. Bài viết này được viết theo yêu cầu của bạn Phước Lê đã comment trong bài “Kỷ niệm post thứ 50” nhé.

Digital marketing: Mobile Web Hay Mobile App?

“Mobile first” là một cụm từ mà chắc các bạn làm bên mảng marketing cũng thường xuyên nghe dạo gần đây. Nó nhấn mạnh rằng các thiết bị di động ngày nay đã là phương tiện được nhiều người dùng sử dụng để truy cập internet nhất và do đó các doanh nghiệp và công ty cần phải suy nghĩ về việc sản phẩm dịch vụ hoặc nội dung mà mình muốn truyền tải đến khách hàng phải được tối ưu cho trải nghiệm di động trước.
Để truyền tải nội dung đến người dùng trên di động thì hiện nay chủ yếu có 2 cách đó là thông qua mobile web và mobile app. Hãy cùng đi vào để hiểu chúng là gì, điểm mạnh cũng như điểm yếu và những giải pháp để giải quyết chúng.

Mobile web là gì?

Mobile web là các trang web được tối ưu hóa để hiển thị tốt hơn cho người dùng khi họ xem điện thoại. Có 3 loại mobile web thường thấy là:

1. Responsive site

Trang web tự động thay đổi kích thước và phương thức hiển thị tùy theo kích cỡ màn hình của thiết bị mà người dùng sử dụng để truy cập. Toàn bộ việc thay đổi của responsive website thường là dựa trên CSS, không tác động gì đến HTML và URL của website cũng không thay đổi.
Conversion.vn là một ví dụ về responsive site, hiển thị cùng một nội dung và HTML cho dù là trên mobile hay điện thoại.

2. Dynamic serving site

Trang web tự động cung cấp 2 phiên bản website khác nhau về mặt dựa theo thiết bị mà người dùng truy cập vào website. Khác biệt của dynamic serving so với responsive là HTML của các thiết bị nhận được sẽ khác nhau. Giống nhau là URL của website sẽ không thay đổi.
Google.com và Amazon.com là một trong trong số những ví dụ nổi bật về kiểu website dynamic serving.

3. Separated mobile site

Hay còn gọi là xây dựng 2 website riêng biệt cho desktop và mobile. Các website này sẽ không phụ thuộc nhau về mặt nội dung, URL cũng khác nhau. Các trang này thường sẽ tự phát hiện người dùng sử dụng thiết bị gì để redirect vào phiên bảng website phù hợp.
Facebook là ví dụ về một trang có trang desktop (facebook.com) và mobile (m.facebook.com) là 2 trang riêng lẻ.
Mỗi loại mobile website đều có đặc trưng riêng cũng như điểm mạnh và điểm yếu. Dưới đây là một bản thống kê so sánh các yếu tố của mỗi loại:

MOBILE WEB
Responsive Dynamic Serving Separate Mobile Site
Mô tả Thay đổi cho phù hợp với kích thước màn hình của thiết bị người dùng Người dùng sẽ thấy phiên bản web khác nhau tùy theo thiết bị sử dụng Website khác nhau phục vụ cho từng thiết bị
Thiết lập Chỉ thay đổi về CSS, không thay đổi HTML Phục vụ phiên bản HTML khác nhau tùy theo thiết bị 1 website cho desktop và 1 website cho mobile
URL URL không thay đổi URL không thay đổi URL khác nhau cho desktop và mobile
Bảo trì Ít tốn kém nhân lực Tốn nhân lực về kỹ thuật Tốn nhân lực về kỹ thuật cũng như nội dung
Nội dung Chỉ 1 nội dung cho cả desktop và mobile Chỉ 1 nội dung cho cả desktop và mobile, hoặc có thể khác nhau tùy theo định hướng phát triển 2 website riêng biệt, có thể giống nhau hoặc riêng cho từng trang tùy theo định hướng phát triển
Chi phí phát triển Thấp Trung bình Cao
Trải nghiệm người dùng Tốt cho những trang đơn giản. Không tốt nếu website có nhiều tính năng và phức tạp. Tốt cho cả những website phức tạp và nhiều tính năng. Mang lại trải nghiệm tốt nhất cho người dùng trên điện thoại.
Tác động đến SEO Không ảnh hưởng Không ảnh hưởng Cần thiết lập về mặt kỹ thuật để đảm bảo không trùng lặp nội dung
Tốc độ web Phiên bản di động có thể load chậm hơn Tùy thuộc vào việc lập trình Tùy thuộc vào việc lập trình
Các vấn đề khác Nếu website bị down thì người dùng desktop và mobile đều không truy cập được. Nếu website bị down thì người dùng desktop và mobile đều không truy cập được. Nếu website desktop bị down mà website mobile không bị thì người dùng di động vẫn truy cập được và ngược lại
Kết luận:
Responsive thì rất tiện lợi và phù hợp cho các website thiên về tin tức, nội dung mà chủ yếu người dùng chỉ cần đọc là chủ yếu. Chi phí thiết lập thấp, bảo trì dễ dàng, thực hiện nhanh chóng và dễ quản lý nội dung, URL và SEO. Đây là lựa chọn cho đa số các website vừa và nhỏ không có các tính năng phức tạp. Đối với các website có nhiều tính năng hơn và có tính tương tác người dùng thì responsive đôi khi sẽ không đủ để mang lại trải nghiệm người dùng tốt nhất.
Dynamic serving thì phức tạp và tốn kém hơn trong việc thiết lập và mặt kỹ thuật nhưng vẫn dễ về phần bảo trì, quản lý về nội dung, URL và SEO. Nhưng dynamic serving mang lại trải nghiệm người dùng tốt hơn so với responsive cho các website có nhiều tính năng ví dụ như e-commerce.
Separate mobile site có lợi ích là mang lại trải nghiệp tốt nhất cho người dùng trên di động vì toàn bộ website được thiết kế và lập trình để đạt được mục tiêu đó. Tuy nhiên chi phí cũng như thời gian để thực hiện là tốn kém nhất và việc bảo trì về kỹ thuật cũng như quản lý nội dung, URL và SEO cũng trở nên phức tạp hơn. Nếu bạn có chi phí, thời gian và muốn mang lại trải nghiệm cao nhất cho người dùng thì đây là lựa chọn.

Mobile app là gì?

Mobile app chính là các ứng dụng di động mà bạn có thể sử dụng để truy cập vào các nội dung mà bạn muốn trên các thiết bị như điện thoại di động. Hiện tại có 2 loại ứng dụng mà bạn thường dùng và 2 loại khác nữa sắp tới có thể sẽ là xu hướng. Hãy cùng điểm qua các loại mobile app này:

1. Native mobile app

Đây là các loại app mà bạn sẽ download nội dung xuống điện thoại và truy cập vào chúng khi sử dụng. Các loại app đặc trưng cho loại này có thể kể đến đa phần các games mà bạn thường chơi. Thông thường tất cả những hình ảnh, âm thanh và các level trong game đều đã được download xuống do đó bạn có thể chơi game mà không cần phải có internet (một số game bắt bạn phải có internet mới chơi được đơn thuần là vì chúng cần đăng nhập, có mua bán vật phẩm bên trong hoặc vì chúng là game online).
Facebook là một ví dụ điển hình của native mobile app.

2. Hybrid mobile app

Trước khi nói vào hybrid mobile app là gì, bạn cần hiểu về web app trước. Web app là các ứng dụng được viết trên nền tảng browser để người dùng có thể tương tác ngay trên đó. Ví dụ thường thấy nhất có thể kể đến các web game, ví dụ như slither.io hoặc mấy trò chơi trên Facebook mà thỉnh thoảng bạn lại bị bạn bè mời chơi.
Gọi là hybrid (lai) mobile app vì nó kết hợp những điểm đặc trưng của web app và mobile app với nhau. Các hybrid mobile app này được viết bằng ngôn ngữ lập trình web (HTML5, CSS3 và Javascript) và sau đó được “bao bọc” bằng một lớp vỏ (container) bên ngoài để trở thành giống như native mobile app và có thể download được trên appstore.
Một số app bạn thường xuyên sử dụng thật ra là hybrid: Uber, Instagram Gmail, Evernote, Twitter, v.v…
Native mobile app hay hybrid mobile app, mỗi cái đều có điểm mạnh và điểm yếu của chúng. Bên dưới là một bản so sánh:

MOBILE APP
Native Mobile App Hybrid Mobile App
Mô tả Ứng dụng cài đặt trên thiết bị di động Website được phát triển để hiển thị trên di động như một ứng dụng
Thiết lập Phát triển ứng dụng mobile cho mỗi hệ điều hành Chỉ cần phát triển container, nội dung là từ website
Chi phí phát triển và bảo trì Tốn kém Ít tốn kém hơn
Cập nhật nội dung Nội dung cập nhật qua các bản nâng cấp của ứng dụng Nội dung được cập nhật tùy website
Trải nghiệm người dùng Rất tốt vì được phát triển hướng tới trải nghiệm người dùng di động Tốt nhưng trong một số trường hợp sẽ không thể bằng native app
Tốc độ Tùy thuộc cách ứng dụng được viết Tùy thuộc tốc độ internet
Khả năng sử dụng Có thể sử dụng được cả khi không có mạng Không thể sử dụng khi không có mạng
Kích thước ứng dụng Tùy thuộc cách lập trình ứng dụng tuy nhiên một số native apps như games thường có xu hướng nặng hơn do phải tải toàn bộ nội dung về Tùy thuộc cách lập trình tuy nhiên nhìn chung hybrid apps thường khả năng nhỏ hơn vì chỉ cần tải các phần cần thiết, nội dung chủ yếu từ website
Kết luận:
Native mobile app: mang lại trải nghiệm tốt nhất cho người dùng tuy nhiên lại cũng tốn kém nhất về chi phí, thời gian phát triển ứng dụng cũng như là bảo trì. Việc nâng cấp các nội dung cũng không dễ dàng mà bắt buộc phải nâng cấp cả ứng dụng theo. Các ứng dụng native có thể hoạt động ngay cả khi không có mạng nếu tất cả file cần thiết đã được download xuống điện thoại.
Hybrid mobile app: trải nghiệm người dùng trên điện thoại tốt, việc phát triển ứng dụng dù không đơn giản nhưng ít phức tạp hơn native mobile app. Việc cập nhật nội dung sẽ dễ dàng hơn do nội dung được sync từ website.

Mobile web hay mobile app?

Mobile app chiếm phần lớn thời gian sử dụng, nhưng…

Nghiên cứu mới đây nhất của Flurry Analytics cho thấy 90% thời gian người dùng sử dụng điện thoại là tương tác với mobile app, chỉ 10% là sử dụng browser để truy cập internet.
90% thời gian trên điện thoại là sử dụng app, chỉ 10% là browser. Nguồn: Flurry Analytics
90% thời gian trên điện thoại là sử dụng app, chỉ 10% là browser. Nguồn: Flurry Analytics
Điều này có thấy rằng nếu bạn muốn tiếp cận người dùng di động thì bạn nhất định phải có một ứng dụng di động cho công ty của bạn? Và ứng dụng di động có phải là kênh truyền tải nội dung tốt nhất? Câu trả lời là, không hẳn. Vì sao?

5 ứng dụng di động hàng đầu gần như độc chiếm

Nếu bạn nhìn lại cách mà bạn đang sử dụng các ứng dụng di động bạn có thể thấy rằng đa phần thời gian khi sử dụng ứng dụng di động hằng ngày, bạn chỉ tập trung vào một số ứng dụng chủ yếu (Facebook, Youtube, email, chat app, v.v…).
Thực chất nghiên cứu từ comScore cho thấy 5 ứng dụng hàng đầu chiếm 80% – 90% tổng thời lượng sử dụng trên mobile.
Phần lớn người dùng chỉ sử dụng quanh đi quẩn lại có 5 apps chính - Nguồn: comScore
Phần lớn người dùng chỉ sử dụng quanh đi quẩn lại có 5 apps chính – Nguồn: comScore
Điều này cho thấy trừ khi bạn có thể đưa được ứng dụng của mình vào top, thì còn lại khả năng nhận được tương tác của ứng dụng bạn sẽ rất thấp hoặc gần như không có.

Download giảm, tỉ lệ bỏ app tăng

Số lượng mobile app được tạo ra và đăng tải lên trên app store đang gia tăng liên tục trong nhiều năm qua:
Số lượng apps được xuất xưởng ngày một tăng. Nguồn: Branch.io
Số lượng apps được xuất xưởng ngày một tăng. Nguồn: Branch.io
Tuy nhiên một nghiên cứu mới đây từ Quartz và comScore cũng cho thấy có tới hơn 65% người dùng không hề download ứng dụng mới vào điện thoại hàng tháng.
Hơn 65% người dùng không download ứng dụng mới hàng tháng. Nguồn: comScore
Hơn 65% người dùng không download ứng dụng mới hàng tháng. Nguồn: Quartz
Và thời gian người dùng sử dụng app trước khi bỏ nó cũng đang giảm liên tục:
Thời gian người dùng sử dụng một app trước khi bỏ nó đang giảm dần. Nguồn: Branch.io
Thời gian người dùng sử dụng một app trước khi bỏ nó đang giảm dần. Nguồn: Branch.io
Điều này cho thấy hệ sinh thái các ứng dụng ngày nay đang dần trở nên ngày một cạnh tranh hơn với số lượng app quá nhiều, khiến cho những app mới và nhỏ gần như không có khả năng được tìm thấy và được download bởi người dùng. Và cho dù các app này có được download thì gần như khả năng bị bỏ sau một hoặc vài lần sử dụng là rất cao.

Chi phí để người dùng download app đang tăng

Để app của bạn được phát hiện và được download nhiều hơn thì hiện nay chỉ có 2 cách là hoặc bạn phải nằm trong top danh sách trên app store hoặc được quảng cáo chúng trên các kênh online để tiếp cận nhiều người download hơn. Trong đó việc quảng cáo là rất quan trọng vì số lượng download và sử dụng của app là một trong những yếu tố quyết định ứng dụng đó có lọt top hay không. Tuy nhiên theo thời gian thì chi phí quảng cáo để cài đặt app đang gia tăng một cách nhanh chóng, tăng gần 200% trong vòng chỉ 12 tháng, theo Fiksu.
Giá cost per install đã tăng vọt chỉ trong vòng 12 tháng. Nguồn: Fiksu
Giá cost per install đã tăng vọt chỉ trong vòng 12 tháng. Nguồn: Fiksu
Với sự gia tăng cost per install như vậy, việc đầu tư để tăng số lượng người sử dụng thông qua quảng cáo là gần như không khả thi với những app nào không có khả năng tài chính. Và ngay cả khi có người download rồi thì khả năng từ bỏ app vẫn là rất cao, khiến cho việc có được ROI như mong đợi từ ứng dụng là một điều khó khăn.
Với tất cả những yếu tố trên chúng ta có thể thấy khó khăn lớn nhất của ứng dụng chính là việc làm sao để thu hút người dùng trong điều kiện bão hòa, và khi đã có người dùng rồi thì việc giữ họ tiếp tục sử dụng cũng là một khó khăn lớn không kém.

Mobile web vẫn rất quan trọng

Dù được nói ở trên rằng chỉ có khoảng 10% thời lượng người dùng dành cho di động, tuy nhiên, theo nhiều nguồn thông tin thì mobile web lại được nhận định là mang lại nhiều traffic hơn so với mobile app. Thực chất việc kết nối giữa desktop web và mobile web tiện lợi hơn. Tùy theo độ tuổi người dùng hoặc category mà đôi khi mobile web lại có thể chạm tới được nhiều người dùng hơn:
Mức độ sử dụng mobile app hay mobile web tùy theo độ tuổi - Nguồn: IAB
Mức độ sử dụng mobile app hay mobile web tùy theo độ tuổi – Nguồn: IAB
Mức độ sử dụng mobile app hay mobile web tùy theo ngành - Nguồn: IAB
Mức độ sử dụng mobile app hay mobile web tùy theo ngành – Nguồn: IAB
Và trong một số ngành đặc trưng ví dụ như tài chính, bảo hiểm, bán lẻ, du lịch, v.v… thì mobile web đóng một vai trò quan trọng trong việc mang lại traffic và đóng góp vào sự phát triển.
Một số ngành thì mobile web vẫn đóng vai trò chủ đạo trong việc mang lại traffic - Nguồn: Morgan Stanley
Một số ngành thì mobile web vẫn đóng vai trò chủ đạo trong việc mang lại traffic – Nguồn: Morgan Stanley

Mobile web là miệng phễu và mobile app là đáy phễu

Những thông tin trên cho thấy mobile web sẽ không vì việc mobile app chiếm ưu thế về thời gian sử dụng mà mất đi tầm quan trọng của mình mà hơn bao giờ hết nó ngày càng trở nên cần thiết hơn về việc bạn phải có một website tối ưu hóa tốt cho mobile.
Tuy mobile web có khả năng thu hút nhiều khách viếng thăm hơn nhưng với mobile app bạn sẽ có những người dùng trung thành hơn. Người dùng có xu hướng dành nhiều thời gian cho mobile app hơn là web sau khi họ đã cài ứng dụng:
Người dùng mobile app thì trung thành hơn với việc tương tác với bran. Nguồn: comScore
Người dùng mobile app thì trung thành hơn với việc tương tác với brand. Nguồn: comScore
Việc sử dụng mobile web hay mobile app là hoàn tùy thuộc vào tình hình và đặc tính mảng kinh doanh của bạn. Trong một số trường hợp, một mobile web tốt là tất cả những gì bạn cần để cung cấp trải nghiệm tốt nhất cho khách hàng. Một số trường hợp khác thì mobile app lại là một lựa chọn tốt hơn. Khi đối diện với câu hỏi về việc bạn nên đầu tư vào mobile web hay mobile app thì đây là một số câu hỏi bạn nên tự hỏi:
– Những tính năng có quá phức tạp đến mức phải làm thành một mobile app hay nó có thể giải quyết được với website?
– ROI của mobile app như thế nào nếu bạn đầu tư vào nó? Nếu bạn đầu tư nó vào một mobile web thì sao?
– Khách hàng của bạn là ai? Họ thích dùng mobile web hay mobile app hơn?
– Mobile app của bạn có phải là thứ được dùng thường xuyên hằng ngày hay không?
….
Trong một số trường hợp, nếu bạn muốn vươn tới được nhiều hơn nữa những đối tượng khách hàng của mình thì có thể bạn sẽ cần phải có cả mobile web và mobile app. Mobile web như là miệng phễu hứng những người dùng mới và mobile app như là đáy phễu, giữ lại những khách hàng trung thành cho bạn.

Những giải pháp mới đang xuất hiên

Định nghĩa về mobile web và mobile app thực chất đang càng ngày càng mờ đi với sự phát triển và xuất hiện của những giải pháp mới hướng đến việc giải quyết những giới hạn đang có của cả mobile web và mobile app.

1. Progressive web app

Progressive web app (PWA) là một xu hướng mới mà trong đó hướng đến việc biến các web app thành một chuẩn mới của ứng dụng trên mobile. Lúc này người dùng có thể skip hoàn toàn việc cài đặt một ứng dụng chỉ để truy cập vào nội dung của dịch vụ đó. Người dùng có thể truy cập vào website mobile của dịch vụ đó thông qua browser và sau đó chỉ cần add icon của dịch vụ vào home screen, đại loại cũng giống như 1 bookmark vậy. Lần sau người dùng có thể bấm mở dịch vụ đó ngay trên điện thoại mà không cần phải vào browser nữa.
Flipkart.com là một trong những website đầu tiên ứng dụng PWA. Xem clip dưới đây để hiểu PWA là thế nào và biết làm sao trải nghiệm thử PWA của Flipkart.
Note: ở Việt Nam thì Lazada.vn dường như cũng đã có PWA. Không biết các bạn e-commerce khác như thế nào.

2. Mobile app streaming

Nghe tên chắc bạn cũng phần nào đoán được, mobile app streaming cho phép bạn có thể sử dụng một ứng dụng một cách trực tiếp và ngay thời gian thực mà không cần phải cài đặt trên điện thoại của mình bằng cách “streaming” ứng dụng đang được nằm trên cloud server (máy chủ trên mây).
Hiện tại vẫn chưa có ứng dụng nào ứng dụng công nghệ mobile app streaming mới này, trừ một demo từ Google như bạn có thể thấy dưới đây:
app-streaming

3. Phát triển trên nền tảng OTT

Tại sao phải phát triển một ứng dụng và tốn rất nhiều chi phí để đẩy nó đến người dùng trong khi đó bạn có thể giúp cho ứng dụng của bạn được tiếp cận bởi hàng triệu người dùng có sẵn? OTT chat app ví dụ như Zalo hiện đang có hơn 45 triệu người dùng, chiếm gần như toàn bộ dân số có mạng internet tại Việt Nam. Lúc này nếu bạn có thể phát triển một ứng dụng nằm ngay trong Zalo thì bạn có thể thông qua Zalo để tiếp cận được hơn 45 triệu người dùng. Người dùng không cần phải download hay cài đặt một ứng dụng mới vì Zalo là một ứng dụng mà họ đã có sẵn trong máy.
Việc những ứng dụng OTT trở thành một nền tảng mới của ứng dụng là xu hướng không thể chối cãi và chắc chắn sẽ rất phổ biến trong tương lai. Tại sao bạn cần phải cài app Uber nếu bạn có thể gọi Uber ngay trên Facebook Messenger:
Những giải pháp mới này dù có thể chưa phổ biến ngay nhưng rất có thể sẽ là xu hướng của mobile trong vòng 1 – 2 năm tới. Hãy cùng chờ xem xu hướng nào sẽ được người dùng lựa chọn nhiều nhất. Nếu bạn có thắc mắc gì hãy để lại bên dưới comment.