Skip to main content

Posts

Showing posts from 2016

So sánh những framework hỗ trợ viết ứng dụng trên SmartPhone

Khi lập trình trên SmartPhone bạn không nhất thiết phải học những ngôn ngữ đặc thù trên từng loại hệ điều hành thì mới có thể lập trình được. Ví dụ như muốn lập trình trên iOS thì phải học ngôn ngữ Objective-C hay Swift, muốn lập trình được trên Android thì học ngôn ngữ Java, muốn lập trình trên WinPhone thì học ngôn ngữ C#. Hiện nay có rất nhiều những framework giúp đỡ cho các bạn rất nhiều khi các bạn muốn viết trên nhiều nền tảng smartphone bằng ngôn ngữ mà bạn yêu thích. Theo mình thấy thì hiện nay có 3 loại như: Native App, Hybrid Mobile App, Native Cross-Platform App. 1. Native App: là những ứng dụng sử dụng những framework và ngôn ngữ lập trình của hệ thống cung cấp sẵn. Ví dụ như bạn muốn lập trình iOS thì phải cài XCode, học ngôn ngữ Objective-C hay Swift, lập trình Android thì cài Android Studio và học ngôn ngữ Java. - Ưu điểm: Hiệu năng thực thi ứng dụng trên nền tảng nhanh và hiệu quả. Không bị phụ thuộc vào bên thứ 3. Khi phát hành ứng dụng trên những Mobile Store cũng dễ...

[Behavioral Pattern] Observer pattern trong Objective-C

Dạo này mình bận công chuyện nên không có thời gian viết blog. Hôm nay rảnh mình sẽ viết tiếp bài  Observer Pattern trong loại bài Design Pattern mà mình đã viết trước đây. Rất mong sự ủng hộ của các bạn để mình có động lực viết loại bài về chủ đề Design Pattern. Trong những loại Design Pattern mà các bạn làm trên iOS chắc chắn đây là loại pattern bạn dùng nhiều nhất. Nó rất hữu ích cho việc xử lý bất đồng bộ khi bạn gọi những request lên server, bạn không cần phải chờ mỗi khi gói tin được gởi từ server về. Và pattern này cũng là pattern chủ đạo trong khái niệm lập trình cấu trúc MVC và  Reactive Programming . Khái niệm : Là loại pattern chỉ sự phụ thuộc và hành vi giữa đối tượng cha và đối tượng con. Nếu đối tượng cha đăng ký observer pattern này với đối tượng con, thì khi đối tượng con xử lý những hành vi nào đó sẽ thông báo cho đối tượng cha ứng với id của observer đó, biết để xử lý tiếp công việc đó. Cấu trúc lớp : Sơ đồ UML Class Diagram của Observer Pattern Cách sử dụng...

Phương Pháp Động Não giúp ích tìm kiếm những ý tưởng và giải pháp hay

Thật tình cờ mình đọc được cuốn sách " Bạn thật sự có tài " bản dịch từ cuốn "inGenius" của tác giả Tina Seelig , trong thư viện sách của công ty. Trước giờ mình rất ít khi đọc sách nhưng mình đọc cuốn sách này mình thấy bà này viết rất hay và cô đọng. Và sau đây là lời giới thiệu của cuốn sách này: "Khả năng sáng tạo không phải một loại tài năng thiên bẩm chỉ dành cho một số người đặc biệt, nó là một kỹ năng bất cứ ai cũng có thể học hỏi. Dựa trên nền tảng đó, tác giả - một chuyên gia huấn luyện và cũng là một giáo sư của Đại học Stanford sẽ giúp độc giả hiểu đúng hơn về sự sáng tạo. Cùng với việc làm rõ bản chất của sáng tạo, bà còn cung cấp cho độc giả nhiều ví dụ cực kỳ thú vị về những ý tưởng đột phát ở khắp mọi nơi, trong đó có những công ty nổi tiếng như Google, Pixar, Facebook, IDEO… Ngoài ra, dựa trên rất nhiều bài tập và tình huống thực tế thú vị trong quá trình bà làm việc ở Stanford, Tina Seelig đã giới thiệu với chúng ta trong cuốn sách này nhiều c...

Hướng dẫn viết ứng dụng ChatBot trên Facebook Messenger bằng node.js (Phần 2)

Trong phần 1 mình có giới thiệu sơ các bạn các bước để viết ứng dụng ChatBot trên Cloud9. Cloud 9 rất tiện khi bạn viết code trên đó giữa nhiều người có thể cùng sửa trên cùng 1 file mà không bị vấn đề gì, nhưng hiện tại mình sử dụng tài khoản free nên gặp vấn đề là khi chạy 1 thời gian thì cloud đó bị sleep và ứng dụng mình đang start bị treo và xài không được nữa, vì thế mỗi lần như vậy phải start lại. Do đó cloud9 chỉ giúp các bạn khi đang phát triển ứng và chạy thử code để test trong thời gian ngắn thôi. Hôm nay mình hướng dẫn các bạn tự start server ở localhost và dùng ngrok  để public server localhost ra bên ngoài. ngrok là gì? ngrok là một reserse proxy nó cho phép tạo một secure tunnel từ một public endpoint đến web service đang chạy ở local. Cơ chế của nó rất đơn giản khi bạn start ngrok lên sẽ cung cấp cho bạn 2 url: http và https. Khi bạn truy suất theo những url đó thì nó sẽ chuyển đến webserver mà bạn đang start ở local theo đúng port mà bạn đã start web server và ngr...

Hướng dẫn viết ứng dụng ChatBot trên Facebook Messenger bằng node.js (Phần 1)

Hiện tại Facebook đang và đã tách riêng ứng dụng Messenger trên Facebook thành 1 platform riêng biệt, để viết thêm những tính năng mới cho Messenger này được phong phú hơn nữa. 1 chức năng mà Facebook cũng như các công ty làm về ứng dụng Chat đang quan tâm và làm đó là chức năng Chat Bot. Chat Bot là một chức năng có thể tự động trả lời lại cho người dùng khi bạn chat với con Bot đó, nói tóm lại nó là một máy tự động trả lời lại. Mình dự định sẽ có 2 bài viết về chủ đề này. Phần 1 là mình hướng dẫn căn bản các bạn các bước để thiết lập kết nối với Facebook Messenger bằng  Node.js .  Phần 2 là mình sẽ hướng dẫn các bạn sử dụng công cụ AI mà Facebook đang phát triển để biến con Bot có khả năng phân tích từ bạn nói với con Bot và trả lời lại cho bạn. Node.js là gì? Node.js là một môi trường thực thi Javascript được xây dựng trên Chrome's V8 Javascript engine. Vì thế nếu bạn rành ngôn ngữ Javascript có thể viết trên node.js 1 cách dễ dàng. Chắc hẳn các bạn đang thắc mắc tại sao mì...

Giới thiệu công cụ FLEX để debug mọi thông tin ngay trên simulator hoặc thiết bị iOS

Chào các bạn hôm nay mình xin giới thiệu đến các bạn 1 tool dùng để debug mọi thông tin như cấu trúc, vị trí, thuộc tính của những đối tượng trong 1 màn hình, có thể xem system logs, network, caches, file browser... trực tiếp ngay trên simulator / thiết bị iOS, mà không cần dùng XCode. Khi bạn thiết lập tool này, bạn có thể biết được mọi hành vi mà người lập trình đang làm trên ứng dụng này mà không cần phải coi code. Công cụ này có tên là FLEX ( là từ viết tắt của Flipboard Explorer ). Công cụ này rất dễ cài đặt và sử dụng, bạn chỉ nên sử dụng tool này cho chế độ Debug thôi. Mình sẽ giới thiệu sơ qua những chức năng chính của tool này như sau: 1. Có thể thay đổi vị trí của đối tượng: Hình bên dưới đây minh họa cách công cụ này có thể tương tác những đối tượng trên màn hình như chọn và thay đổi vị trí của đối tượng trên màn hình. Bạn bạn chạy simulator thì nhấn phím "f" để mở thanh công cụ hoặc có thể tạo 1 button là "FLEX" để hiển thị thanh công cụ lên (code hiển ...

Viết Auto Layout bằng code và cách viết UnitTest để kiểm tra giao diện - Phần 3

Trước đây mình có 2 bài viết hướng dẫn cách dùng Auto Layout và Size Class bằng cách thiết lập trên storyboard hay file xib. Nếu các bạn chưa xem có thể xem qua AutoLayout và Size Class Phần 1 , Phần 2 . Nếu các bạn làm project từ iOS 9 trở lên thì nên dùng UIStackView để thiết kế giao diện cho dễ, ngược lại từ iOS 8.4 trở xuống thì bạn phải dùng view và những constraint để giả như StackView, để có thể thiết kế giao diện 1 cách đơn giản nhất, vì khi trên 1 màn hình có nhiều thành phần nhỏ nếu bạn liên kết theo từng nhóm trong view thì dễ quản lý hơn. Hoặc bạn có thể dùng thư viện OAStackView , ý tưởng viết thư viện này từ UIStackView . Viết giao diện nếu bạn muốn trực quan thì nên dùng storyboard hay xib, nhưng nhiều khi có những trường hợp bạn cần viết giao diện bằng code. Nếu bạn nắm được cách viết giao diện bằng code bạn có thể hiểu sâu hơn những vấn đề khi làm giao diện. Khi làm autolayout trên iOS bằng constraint, có những khái niệm bạn cần phải hiểu như: * Pin, Align và Ratio: -...