Wednesday, December 23, 2015

BASIC SWIFT - Bài 2 - Cú pháp (syntax) cơ bản

Sau Bài 1, chúng ta đã cài đăt được môi trường phát triển cho Swift, cũng như là có được cái nhìn đầu tiên về Swift và xem những dòng code thể hiện bài Hello World.
Trong bài 2 này, chúng ta sẽ cùng học về các Cú pháp Syntax cơ bản dùng trong Swift.
Sau khi bạn tìm hiểu kỹ được các syntax swift rồi thì bạn sẽ rất dễ dàng và nhanh chóng có thể đọc hiểu code mẫu, cũng như bắt tay vào code app của riêng mình.





Chương 2: Cú pháp Syntax Swift cơ bản


Trong Bài 1, bạn nhận được đoạn code sample cho bài Hello World! như sau:


import UIKit

var myString = "Hello, World!"

println(myString)



Lệnh import


Chúng ta dùng lệnh import khi muốn nhúng bất kỳ một thư viện nào của Objective-C hoặc C trực tiếp vào chương trình Swift. Như trong đoạn code ví dụ trên, sau khi import gói UIKit vào, thì tất cả các hàm Cocoa thuộc gói UIKit (APIs, các hàm thuộc thư viện, các class xử lý giao diện, ...) sẽ sẵn sàng để bạn có thể code được bằng Swift.

Nếu bạn chưa biết, thì Cocoa được triển khai bằng Objective-C, và là một tập các lệnh superset viết lên trên C như một layer tiện dụng cao hơn (về bản chất nó vẫn là C, nhưng có chứa nhiều hàm, nhiều sự kiện, APIs, được viết sẵn để tiện cho chúng ta sử dụng). Và vì thế nên bạn sẽ rất dễ dàng nhúng cả code C, hay thậm chí là C++, vào ứng dụng Swift của bạn.



Tokens in Swift


Một chương trình viết bằng Swift thì gồm có nhiều tokens khác nhau, và một token thì có thể là 1 keyword (từ khoá), một khai báo, một constant, một string, hay là một symbol.

Comments


Comments là đoạn text trong trương chình của bạn, nhưng nó sẽ không được biên dịch trong quá trình build code. Nó thường dùng để bạn ghi chú về chức năng của function, của 1 dòng lệnh, ... nhằm giúp bạn dễ dàng nhớ lại hoặc hiểu được mục đích của các dòng lệnh được ghi chú đó.
Comment thì có 2 kiểu.
Comment hiển thị trên nhiều dòng, thì bắt đầu bằng /* và kết thúc khi gặp ký tự */ như ví dụ:


/* My first program in Swift */


Comment nhiều dòng có thể được lồng vào nhau, trong Swift, ví dụ comment sau đây là hợp lệ (tất nhiên bạn không nên làm như thế này nhiều, mà hãy cố gắng giữ tỷ lệ 1-1 nghĩa là 1 cặp mở /* đi kèm 1 cặp đóng */ mà thôi):


/* My first program in Swift is Hello, World!
/* Where as second program is Hello, Swift! */




Nếu bạn chỉ muốn comment nhanh trên một dòng, hãy dùng // ở trước đoạn comment, ví dụ:


// My first program in Swift





Semicolons - ký tự chấm phẩy - ;


Swift không yêu cầu bạn phải viết dấu semicolon ; sau mỗi dòng code, mà có cũng được không có cũng được.
Tuy nhiên, nếu bạn gõ liên tiếp nhiều câu lệnh (statements) trên cùng một dòng code, thì nó là bắt buộc phải dùng semicolon ; sau mỗi câu lệnh (statement). Điều đó nhằm giúp cho trình biên dịch biết phân biệt được các câu lệnh khác nhau, và nếu chúng ta thiếu dấu semicolon ; này, trình biên dịch sẽ báo lỗi.

Ví dụ cách dùng dấu ; vào bài Hello World bạn có thể xem thử như sau:


import UIKit
/* My first program in Swift */
var myString = "Hello, World!"; println(myString)


Identifiers


Một identifier trong swift là một cái tên dành cho một biến, một function, hoặc các item do người dùng tự định nghĩa ra. Một identifier thì thường được bắt đầu các ký tự A-Z, a-z, hoặc dấu gạch dưới _, và sau đó thì có thể là các số từ 0-9 hoặc các chữ cái, dấu gạch dưới khác.

Swift không chấp nhận các ký tự đặc biệt trong tên của identifier như là @, $ hay %. Swift là ngôn ngữ lập trình có phân biệt case-sensitive, và nghĩa là có phân biệt chữ hoa chữ thường (ví dụ biến Abc sẽ khác biệt với biến aBc, và được coi là 2 identifier khác nhau).

Dưới đây là một số ví dụ về các tên identifier được chấp nhận trong Swift:
  • Azad
  • zara
  • abc
  • move_name
  • a_123
  • myname50
  • _temp
  • j
  • a23b9
  • retVal

Để sử dụng 1 từ đã được sử dụng bởi Swift như là từ khoá (reserved word), làm identifier, thì cần phải thêm dấu nháy đơn ' vào trước vào sau tên đó. Ví dụ nếu bạn đặt identifier là class thì là không hợp lệ, nhưng 'class' thì lại được chấp nhận.
Tuy nhiên có lời khuyên là không nên đặt identifier giống các từ khoá đó.


Keywords - Từ khoá


Như đề cập ở trên, thì dưới đây là một số từ khoá đã được sử dụng trong Swift, và nhắc lại là bạn không nên dùng nó để đặt làm identifier như là tên biến, constants, method name, trừ khi bạn có thêm vào trước và sau nó ký tự ':

Các từ khoá dùng trong khai báo


class deinit enum extension
func import init internal
let operator private protocol
public static struct subscript
typealias var


Từ khoá sử dụng trong các câu lệnh


break case continue default
do else fallthrough for
if in return switch
where while


Từ khoá sử dụng trong các biểu thức và kiểu


as dynamicType false is
nil self Self super
true _COLUMN_ _FILE_ _FUNCTION_
_LINE_


Từ khoá sử dụng trong 1 số tình huống context hoàn cảnh


associativity convenience dynamic didSet
final get infix inout
lazy left mutating none
nonmutating optional override postfix
precedence prefix Protocol required
right set Type unowned
weak willSet




Whitespace - Ký tự trắng



Một dòng chứa toàn ký tự trắng, hoặc với comment, còn được gọi là blank line - dòng trống, và trình biên dịch Swift sẽ hoàn toàn bỏ qua chúng khi dịch code.

Whitespace - là từ dùng chung trong Swift để chỉ các: khoảng trắng, tabs, ký tự dòng mới (xuống dòng), và comment.
Whitespace thường dùng để ngăn cách các phần trong một câu lệnh để trình biên dịch phân biệt được các thành phần trong câu lệnh như là khởi đầu, kết thúc, operators, ... Thường thì có ít nhất 1 ký tự trắng như là space giữa các phần trong một câu lệnh.

Ví dụ:


var age

int fruit = apples + oranges //get the total fruits



Tất nhiên, không bắt buộc phải đặt dấu gạch trắng ở giữa fruit, và =, hoặc giữa = và apples, tuy nhiên bạn nên đặt đầy đủ như trên để dễ dàng trong việc đọc code.



Literals


Literal là phần giá trị của biến trong source code. Ví dụ:


92 // Integer literal
4.24159 // Floating-point literal
"Hello, World!" // String literal

Thursday, December 17, 2015

BASIC SWIFT - Bài 1 - Giới thiệu

Lần đầu được giới thiệu tại WWDC 2014, Swift là ngôn ngữ lập trình mới do Apple phát triển dành cho iOS và Mac OS X. Ở thời điểm hiện tại thì Swift 2 cũng đã được ra mắt cùng với phiên bản XCode 7, và Swift cũng đã được Apple OpenSource hoá. Do đó có thể tin tưởng về 1 tương lai mới với hệ thống cộng đồng lập trình viên rộng lớn cho ngôn ngữ này.

Trong loạt bài viết này, chúng ta cùng bắt tay vào học ngôn ngữ mới này.



Nội dung các bài học lần lượt sẽ đi theo cấu trúc sau:




Bây giờ chúng ta sẽ cùng bắt đầu.


Chương 1: Giới thiệu chung về Swift


Với truyền thống của Apple là luôn làm ra những thứ tốt nhất, chất lượng nhất, ngôn ngữ lập trình mới Swift cũng được hưởng những điều tốt đẹp đó. Swift được phát triển dựa trên những điều tốt đẹp nhất của C vào Objective-C, mà không bị vướng một chút ràng buộc nào trong tính tương thích với C.

Nếu bạn là một lập trình viên tay mơ mới vào nghề, bạn có thể ghi nhớ một câu rằng, code write bằng C luôn được thực hiện nhanh nhất (sau Assembly, và vì bạn tay mơ với vào nghề tôi tin bạn không làm được Assembly thần thánh nên trực tiếp bỏ qua xếp hạng của ngôn ngữ này).

Swift được giới thiệu với những ưu điểm hấp dẫn sau:


  • Swift sử dụng các mẫu lập trình an toàn.
  • Swift cung cấp các tính năng của một ngôn ngữ lập trình hiện đại.
  • Swift cung cấp các cú pháp (syntax) câu lệnh tương tự như Objective-C, do đó bạn mà biết Objective-C thì đó là một lợi thế khi học ngôn ngữ này.
  • Swift là cách mới trên cả tuyệt vời để viết nên những app hấp dẫn dành cho iOS và Mac OS X.
  • Swift cung cấp cơ chế truy cập thuận tiện vào các thư viện có sẵn Cocoa frameworks, nếu bạn có các thư viện này, bạn sẽ không phải viết lại chúng sang Swift mà có thể dùng trực tiếp luôn.
  • Swift hợp nhất các thủ tục  (procedural) và các phần hướng đối tượng (object-oriented portions) trong ngôn ngữ.
  • Swift không cần các thư viện rời được import vào dành cho các chức năng cơ bản quen thuộc như là input/output, hoặc xử lý các string.
  • Swift sử dụng cùng bộ runtime với hệ thống Obj-C trên Mac OS X và iOS, và do đó nó cũng sẽ có thể chạy được luôn trên các thiết bị đang sử dụng nền tảng iOS 6 và OS X 10.8 trở lên.


Swift được cung cấp với tính năng playground (sân chơi) mà từ đó, các lập trình viên Swift có thể bắt đầu viết các dòng code đầu tiên vào khởi chạy chúng ngay lập tức.

Swift cũng được thiết kế bằng cách vay mượn rất nhiều ý tưởng từ các ngôn ngữ khác như Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, ... nên bạn sẽ rất nhanh chóng làm quen được với ngôn ngữ này.



Nếu bạn đã sẵn sàng chuẩn bị tinh thần để học ngôn ngữ này. Bạn sẽ cần làm thêm một số bước chuẩn bị trước khi có thể bắt đầu học.

Thiết lập môi trường phát triển ở local - Local Environment Setup

Đầu tiên bạn cần XCode, download trực tiếp từ AppStore trên Mac OS X, hoàn toàn miễn phí.

Sau khi cài đặt thành công XCode, bạn ngay lập tức có thể thử nghiệm XCode cũng như ngôn ngữ lập trình Swift này bằng cách làm bài tập "Hello World!" nổi tiếng như ta vẫn thường làm.

"Hello World!" Swift Project


Chọn Get started with a playground và đăt tên cho project là HelloWorld, platform là iOS.

Nhấn Next, chọn nơi lưu project file. Cuối cùng bạn sẽ có một cửa sổ Playground window như hình ảnh bên dưới:



Đoạn code dưới đây được copy lại từ trình soạn thảo của XCode.

import UIKit

var str = "Hello, playground"


Nếu bạn chọn platform để development là OS X, thì thư viện Cocoa sẽ tự động được đưa vào thay cho UIKit dành riêng cho iOS.


import Cocoa

var str = "Hello, playground"


Nhấn vào nút Play hình mũi tên xanh ở góc bên trái dưới cửa sổ để chạy thử code, bạn sẽ nhìn thấy kết quả được hiển thị ở panel phía bên tay phải dòng


Hello, playground



Xin được chúc mừng, bạn chính thức đã setup thành công môi trường phát triển cho Swift, và bạn sẵn sàng để bước chân vào môn học này.

Friday, December 4, 2015

[GUIDE] Hướng dẫn Remove bớt các app đi kèm với windows 10

Windows 10 được cài đặt kèm với khá nhiều ứng dụng mặc định có sẵn. Và tuỳ thuộc vào bộ windows bạn cài, thì bạn cũng sẽ thấy rằng có vài apps xuất hiện ở Start Menu mà có lẽ là bạn sẽ không sử dụng tới. Trong bài hướng dẫn này, tôi sẽ hướng dẫn các bạn cách xoá bất cứ app nào bạn muốn. Qua đó khắc phục được phần nào tình trạng cố hữu của Windows đó là cài lắm app thì càng ngày nó chạy càng chậm.



Việc đơn giản bạn cần phải thử trước, đó là đơn giản nhấn-chuột-phải vào app mà bạn muốn gỡ bỏ ở Start Menu, và kiểm tra xem có lựa chọn cho phép Uninstall tháo gỡ nó không. Nếu có thì bạn chỉ cần click vào và làm theo hướng dẫn. Nhưng nếu không có, bạn hãy đọc hướng dẫn bên dưới đây.


Đầu tiên, bạn cần phải đăng nhập vào windows với quyền administrator, bạn cũng cần tìm kiếm ứng dụng PowerShell để thực hiện các lệnh gỡ bỏ dưới đây.

Nhấn vào Start, gõ vào tìm kiếm PowerShell. Nhấn chuột phải vào app PowerShell, nhấn chọn Run as administrator.


Công việc tiếp theo là copy và paste các lệnh tương ứng dưới đây để gỡ app không mong muốn.


Remove OneNote with a PowerShell command

Get-AppxPackage *OneNote* | Remove-AppxPackage

Remove 3D from Windows 10

Get-AppxPackage *3d* | Remove-AppxPackage


Remove Camera from Windows 10

Get-AppxPackage *camera* | Remove-AppxPackage


Remove Mail and Calendar from Windows 10

Get-AppxPackage *communi* | Remove-AppxPackage

Remove Money, Sports, News and Weather from Windows 10

Get-AppxPackage *bing* | Remove-AppxPackage


Remove Groove Music and Film & TV from Windows 10

Get-AppxPackage *zune* | Remove-AppxPackage

Remove People from Windows 10

Get-AppxPackage *people* | Remove-AppxPackage

Remove Phone Companion from Windows 10

Get-AppxPackage *phone* | Remove-AppxPackage

Remove Photos from Windows 10

Get-AppxPackage *photo* | Remove-AppxPackage

Remove Solitaire Collection from Windows 10

Get-AppxPackage *solit* | Remove-AppxPackage

Remove Voice Recorder from Windows 10

Get-AppxPackage *soundrec* | Remove-AppxPackage

Remove Xbox from Windows 10

Get-AppxPackage *xbox* | Remove-AppxPackage

Note: Mặc dù khi bạn gõ lệnh trên để remove Xbox bạn có nhận được thông báo lỗi như dưới đây. Tuy nhiên bạn sẽ thấy là app đã được gỡ bỏ mà không có vấn đề gì.



PS C:\WINDOWS\system32> Get-AppxPackage *xbox* | Remove-AppxPackage
Remove-AppxPackage : Deployment failed with HRESULT: 0x80073CFA, Removal failed. Please contact your software vendor.
(Exception from HRESULT: 0x80073CFA)
error 0x80070032: AppX Deployment Remove operation on package
Microsoft.XboxGameCallableUI_1000.10240.16384.0_neutral_neutral_cw5n1h2txyewy from:
C:\Windows\SystemApps\Microsoft.XboxGameCallableUI_cw5n1h2txyewy failed. This app is part of Windows and cannot be
uninstalled on a per-user basis. An administrator can attempt to remove the app from the computer using Turn Windows
Features on or off. However, it may not be possible to uninstall the app.
NOTE: For additional information, look for [ActivityId] 1d60accb-cb8d-0003-d5b8-601d8dcbd001 in the Event Log or use
the command line Get-AppxLog -ActivityID 1d60accb-cb8d-0003-d5b8-601d8dcbd001
At line:1 char:26
+ Get-AppxPackage *xbox* | Remove-AppxPackage
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (Microsoft.XboxG...l_cw5n1h2txyewy:String) [Remove-AppxPackage], IOException
+ FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.RemoveAppxPackageCommand

Remove-AppxPackage : Deployment failed with HRESULT: 0x80073CFA, Removal failed. Please contact your software vendor.
(Exception from HRESULT: 0x80073CFA)
error 0x80070032: AppX Deployment Remove operation on package
Microsoft.XboxIdentityProvider_1000.10240.16384.0_neutral_neutral_cw5n1h2txyewy from:
C:\Windows\SystemApps\Microsoft.XboxIdentityProvider_cw5n1h2txyewy failed. This app is part of Windows and cannot be
uninstalled on a per-user basis. An administrator can attempt to remove the app from the computer using Turn Windows
Features on or off. However, it may not be possible to uninstall the app.
NOTE: For additional information, look for [ActivityId] 1d60accb-cb8d-0001-d9b9-601d8dcbd001 in the Event Log or use
the command line Get-AppxLog -ActivityID 1d60accb-cb8d-0001-d9b9-601d8dcbd001
At line:1 char:26
+ Get-AppxPackage *xbox* | Remove-AppxPackage
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (Microsoft.XboxI...l_cw5n1h2txyewy:String) [Remove-AppxPackage], IOException
+ FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.RemoveAppxPackageCommand



Thursday, November 19, 2015

Chia sẻ 7 bước xử lý khi iPhone bị đầy bộ nhớ

Với người dùng phổ thông, iPhone không còn điều gì xa lạ. Và có 1 điều mà hẳn ai cũng thích ở iPhone, đó là chụp hình cực đẹp. Thế nhưng, bạn cũng dễ dàng nhận ra rằng, iPhone dường như là quá ít pin để chụp thoả thích, mà ảnh càng đẹp càng lớn thì càng tốn bộ nhớ. Với túi tiền eo hẹp của mình, bạn quyết định đầu tư một con iPhone, chấp nhận dung lượng 16GB (vì lên 64GB lại chênh thêm cả triệu đồng), rồi bạn sẽ nhận ra rằng nó quá ít để đáp ứng nhu cầu chụp ảnh của bạn.
Tuy nhiên, không phải vì thế mà bạn phải vay mượn nợ nần thêm để sở hữu bản dung lượng cao hơn, với 7 bước bí quyết dưới đây, bạn sẽ thấy rằng 16GB cũng đủ để xài đến khi bạn có nhiều xiền hơn để nâng cấp. Các bí quyết cách xử lý khi iPhone báo đầy bộ nhớ dưới đây bạn cũng có thể áp dụng cho nhiều loại thiết bị khác nhau được, chỉ có các bước làm chi tiết là khác chút thôi.

Khi iPhone báo dung lượng bộ trống bị đầy.

1. Kiểm tra những ứng dụng hay tài nguyên nào đang chiếm nhiều bộ nhớ


Đây là bước đầu tiên để xác định xem bạn nên kill những thứ gì để giải phóng bộ nhớ. Bạn chỉ cần vào Cài đặt > Cài đặt chung > Sử dụng > Dung lượng để kiểm tra cụ thể xem những ứng dụng nhiều đang ngốn dung lượng nhiều nhất để còn biết cách xử lý. Có nhiều ứng dụng ta cứ vô tư dùng, mà không biết rằng bọn chúng sẽ tự động sinh ra những file tạm. Dần dần, những file này khiến cho ứng dụng bị phình ra.


Sau khi định ra được các ứng dụng nào đang ngốn nhiều bộ nhớ, bạn lần lượt sử dụng các thao tác dưới đây để dọn dẹp làm gọn nhẹ chúng.

2. Xoá bớt game hoặc ứng dụng ít dùng


Có những game, bạn đã từng rất thích, bạn chơi nó hàng ngày. Rồi thời gian sau, bạn lại thích game khác, và game trước đó dần vào quên lãng. Xoá thì tiếc vì mình đã từng rất vui khi chơi game đó nên cứ muốn giữ lại để sau chơi nữa. Tuy nhiên tôi chắc rằng, một game hay 1 apps mà cả 1 hay 2 tuần trời bạn không hề đụng đến, thì khả năng bạn không cần chúng nữa. Bạn có thể xoá bớt chúng để giải phóng bộ nhớ. Một số game hoặc app có chức năng sync data lên server của chúng nên bạn có thể yên tâm nếu sau lại muốn tải về chơi lại. Ví dụ như game Candy Crush Saga dài lê thê với các màn chơi na ná nhau.

Ngoài ra, việc mạng mẽo Wifi miễn phí đang có khắp mọi nơi ở các quán cafe, bạn có thể xoá đi rồi khi cần thì lại tải lại nhanh chóng mà chả tốn kém gì.



3. Xoá bớt nhạc


Bạn đã bao giờ có cảm giác thấy nhàm chán khi bật iPhone của mình lên để nghe nhạc, rùi lại nhấn Next next liên tục để qua bài mình yêu thích chưa. Đó chính là lúc bạn nên xoá bớt đi những bài mà không còn muốn nghe nữa, hoặc nhàm chán quá rồi.

Nếu bạn ưa thích nhạc mới, thì các ứng dụng nghe nhạc miễn phí trực tuyến cũng đủ cho bạn nghe thoải mái cả ngày rồi: ví dụ Zing MP3, nhạc của tui, iTunes,...

Ngoài ra, bạn nên lưu trữ các bài nhạc sao cho tổng số thời gian nghe nhạc chừng 1-2h đổ lại thôi. Nghe nhạc nhiều và liên tục không tốt cho đôi tai của bạn đâu :)



4. Sử dụng chức năng "Tối ưu hoá bộ nhớ" có sẵn của iOS



Chức năng này có sẵn của iOS, tuy nhiên nếu bạn ít mày mò sâu (có thể do iOS quá dễ dàng và tiện lợi khi dùng rồi, nên bạn ít phải mò) nên bạn không biết. Truy cập vào phần Cài đặt > Ảnh và Camera, chọn Tối ưu hóa Dung lượng iPhone nhé. Từ sau iOS 8 đã có chức năng này, giúp bạn sử dụng chiếc điện thoại và tài khoản iCloud của mình dễ dàng hơn rất nhiều, khỏi lo chụp hình mà thiếu bộ nhớ nữa. Khi chức năng này được bật, bức ảnh dung lượng lớn sẽ được tối ưu bằng cách thay thế bởi bức ảnh đã được resize lại để giúp cho bạn xem trên iPhone vẫn đẹp. Còn bức ảnh gốc đã tự động được sao lưu trực tuyến lên iCloud rồi.


5. Không lưu lại ảnh thường khi chụp chế độ HDR


Chế độ chụp HDR cho ra những bức ảnh rất đẹp trong điều kiện nhất định. Và bạn có thể chưa biết rằng, khi chụp ở chế độ này, iPhone mặc định lưu ra thành 2 bức ảnh: 1 bức HDR và một bức thường. Do đó, bạn có thể vào phần Cài đặt > Ảnh và Camera và bỏ chọn mục Lưu ảnh thường.



6. Xoá dữ liệu cache và lịch sử duyệt web


Để giúp cho việc duyệt web được nhanh hơn, trình duyệt Safari (hay Chrome) sử dụng cơ chế cache lưu lại một phần (hoặc toàn bộ) trang web mà bạn hay xem vào bộ nhớ tạm; tồi cả lịch sử các trang web bạn đã truy cập nữa; tất cả bọn chúng đều cần lưu trên máy, và do đó chúng chiếm bộ nhớ. Bạn hãy xoá chúng đi, chúng ta sẽ nhanh chóng có được khá nhiều chỗ trống nếu bạn hay duyệt web bằng điện thoại.

Để làm việc này:
- Với Safari, bạn truy cập Cài đặt > Safari rồi nhấn Xóa Lịch sử và Dữ liệu Trang web.
- Với Chrome, vào phần Settings > Privacy > Clear All (có thể chọn từng phần để xoá nếu muốn).


7. Xử lý bớt những ứng dụng hay tài nguyên nào đang chiếm nhiều bộ nhớ


Ngoài các bước trên, bước này tỉ mỉ hơn một chút khi bạn có thể vào từng app mà bạn thấy rằng nó đang bị phình ra, để xoá bớt các file tạm, file không dùng đến trong app đi. Ví dụ: file ghi âm, hoặc quay film của các app chỉnh sửa mà bạn hay vọc. File image cache của các trình xem ảnh, ...

Tuesday, November 10, 2015

[REVIEW] SideSync: điều khiển Smartphone / Tablet Samsung từ máy tính, nhận được cả thông báo


SideSync là công cụ rất hay của Samsung cho phép bạn dùng máy tính để xem thông báo trên điện thoại. Chưa hết, nó còn hỗ trợ truyền trực tiếp màn hình của smartphone lên PC, khi đó bạn có thể thoải mái thao tác với thiết bị di động mà chẳng cần cầm máy lên làm gì. SideSync hữu ích trong những trường hợp như đang ngồi làm việc mà có SMS tới, thay vì phải cầm điện thoại lên để trả lời thì giờ bạn có thể làm chuyện đó ngay từ máy tính với bàn phím rộng rãi thoải mái. SideSync còn có thêm chức năng gửi file khá tiện, và đặc biệt hỗ trợ cả kết nối USB lẫn Wi-Fi nên bạn không cần phải gắn dây gì lằng nhằng cả. SideSync tương thích nhiều máy Samsung, từ Galaxy Note 5, S6 cho đến các máy A, J, E và thậm chí là cả tablet nữa.



Video



1. Cài đặt, ghép đôi


Để sử dụng SideSync, yêu cầu duy nhất đó là điện thoại của bạn phải chạy Android 4.4 KitKat hoặc mới hơn, còn với tablet thì cần Android 5.0 Lollipop trở lên. Nếu thiết bị chưa cài sẵn ứng dụng SideSync thì bạn có thể tải nó về miễn phí trên Google Play. Tất nhiên, chỉ áp dụng cho máy Samsung mà thôi, hãng khác thì không được. Samsung có nói thêm là một số dòng máy không tương thích với SideSync nhưng không đề cập rõ model nào, nhưng các máy như Galaxy Note, Galaxy S, dòng A, J, E mới đều chạy tốt.



Tải về SideSync dành cho Android



Về máy tính, SideSync có đủ app cho cả Windows lẫn Mac OS X, tính năng cũng đầy đủ như nhau và cách hoạt động cũng y như nhau. Yêu cầu Windows XP SP3 trở lên, hoặc OS X 10.6 trở lên. Khá đơn giản.



Tải về SideSync dành cho Windows hoặc OS X



Sau khi tải và cài đặt xong SideSync trên cả mobile lẫn PC thì bạn có thể ghép đôi chúng. Quá trình ghép đơn cực kì dễ và nhanh chóng, chỉ cần bạn ghim dây USB hoặc cho cả hai máy cùng truy cập vào một mang Wi-Fi là chúng tự nhau. Nhớ là phải chạy app SideSync ở cả hai bên nhé.



2. Xem thông báo


Chức năng cơ bản đầu tiên mà bạn thấy sau khi chạy SideSync đó là toàn bộ các thông báo trên điện thoại của bạn sẽ được hiển thị trên máy tính. Hãy thử tưởng tượng bạn đang ngồi làm việc mà nhận tin nhắn SMS ngay từ máy tính thì quá sướng đúng không nào. Một ví dụ khác, khi có ai đó comment lên post trên Facebook của bạn là bạn thấy liền. SideSync còn thú vị ở chỗ nó có khả năng hiển thị thông báo dạng popup ở góc trên bên phải màn hình PC, nhờ vậy bạn không cần phải mở cả cửa sổ chi cho chiếm chỗ.





Dong_bo_thiet_lap.





Nếu bạn nhấn vào thông báo của SideSync, chức năng chia sẻ màn hình sẽ được kích hoạt lên và chạy đúng app đã gửi thông báo đó ra, y hệt như khi bạn xài điện thoại để mở notification thôi chứ không có gì khác. Chức năng chia sẻ màn hình thì mình sẽ nói đến ở phần bên dưới.











3. Chia sẻ màn hình, điều khiển từ xa




Đây có lẽ là chức năng thú vị mà không nhiều điện thoại Android khác có thể làm được. SideSync sẽ cho phép bạn truyền cả màn hình của điện thoại hoặc tablet lên máy tính của mình luôn, khi đó bạn có thể xài chuột và bàn phím của máy tính để nhập liệu thay vì xài ngón tay hay bàn phím ảo. Chức năng này tiện trong một số trường hợp như đã nói ở phần 2, hoặc khi bạn cần thuyết trình một thứ gì đó cũng được. À, đã có anh em nào nghĩ đến việc chơi Clash of Clan từ máy tính theo kiểu này chưa. Lưu ý, nếu xài chức năng chia sẻ màn hình để chơi game, thuyết trình hay cho mọi người xem ảnh thì nên dùng cáp USB, khi đó độ trễ sẽ thấp hơn nhiều so với việc dùng kết nối Wi-Fi.





SideSync_Dieu_khien_tu_xa.




Để kích hoạt chức năng chia sẻ màn hình, bạn nhấn nút "Phone screen" trên cửa sổ SideSync là xong. Chờ một chút để kết nối được thiết lập là được. Trong cửa sổ vừa bung ra, bạn có đủ nút Home, Back, Recent Apps, ngoài ra còn có cả nút phóng to toàn màn hình để xài khi cần thiết. Lúc bạn đóng cửa sổ chia sẻ, SideSync sẽ vẫn hoạt động, thông báo vẫn sẽ tiếp tục được nhận chứ không bị đóng luôn app.




SideSync_Thong_bao.




4. Gửi file


Đây là chức năng cuối cùng mà mình muốn chia sẻ với các bạn. Để copy file từ máy tính sang điện thoại, bạn nhấn vào biểu tượng File Explorer trên cửa sổ SideSync của máy tính. Lúc này, màn hình của thiết bị Android sẽ hiện ra, bạn chọn vào "Bộ nhớ thiết bị" rồi kéo thả file cần copy vào là xong. SideSync sẽ tự lo tiếp phần chuyển file còn lại, bất kể bạn đang dùng cáp USB hay Wi-Fi. Bạn có thể chép bất kì định dạng file nào, kể cả nhạc, hình, phim...

Monday, November 2, 2015

[OS X] Tính năng có thể bạn chưa biết của phím Option: chỉnh volume mức 1/4, cắt file, xem Wi-Fi...

Kế bên phím Command to to và rất thường hay xài là một phím nhỏ hơn ghi chữ Option. Hầu hết mọi người đều không xài đến phím này do nó không có nhiều chức năng? Ủa mà chắc không? Không phải đâu, phím Option có thể làm được nhiều hơn những gì bạn nghĩ đấy. Cắt dán file, xóa thẳng file, tăng giảm 1/4 âm lượng hoặc độ sáng, bật tắt nhanh chế độ Do Not Disturb, xem thông tin mạng Wi-Fi và còn nhiều trò vui vẻ, nhanh chóng khác. Mời anh em đọc bài, đọc tới đâu nghịch ngay tới đó cho đã.

Chỉnh volume và độ sáng ở mức nhỏ hơn


Khi bạn nhấn nút tăng giảm volume hoặc nút tăng giảm độ sáng, Mac sẽ tự động tăng hoặc giảm đi một nấc và điều đó thể hiện rõ trên màn hình. Nhưng cũng lắm lúc nếu tăng 1 bậc thì tiếng to quá, còn giảm 1 bậc thì nghe không đã. Với sự trợ giúp của phím Shift + Option + <nút tăng giảm volume / độ sáng>, bạn có thể điều chỉnh chỉ 1/4 bậc mà thôi. Khá là hay đấy, thử liền đi anh em.



Cắt dán file

Một trong những lời than phiền cực kì phổ biến của người mới chuyển từ Win qua Mac đó là Mac không có tùy chọn Cut (cắt file). Thực chất có, nhưng Apple đã giấu nó đi vào phím Option để hạn chế tình trạng mất dữ liệu thôi.

Để sử dụng cut file: Ban đầu, bạn vẫn nhấn Command + C như khi copy. Tuy nhiên, lúc dán, bạn dùng tổ hợp phím Command + Option + V. Khi này Mac sẽ hiểu là bạn muốn cut, còn nếu chỉ Command + V thôi thì sẽ copy như bình thường.

Xóa file thẳng, không cho vào thùng rác


Nếu bạn cũng như mình, thường lười vào thùng rác xóa file thì bạn có thể nhờ phím Option để xóa trực tiếp. Tuy nhiên, cũng cần lưu ý rằng thao tác này rất nguy hiểm vì xóa là mất luôn và bạn chỉ nên áp dụng nó với những file không quan trọng mà thôi.


Cách làm như sau (2 cách, anh em quen cách nào thì chơi cách đó):
  1. Nếu bạn thường dùng Command + Delete, thì giờ đổi thành Command + Option + Delete
  2. Nếu bạn xóa bằng menu File của Finder, lúc nhấn vào menu này, bạn nhấn giữ thêm nút Option. Bạn sẽ có thêm tùy chọn "Delete Immediately" thay vì "Move to Trash" như bình thường. 



Xóa lịch sử duyệt web trong Safari



Trong Safari, bạn có thể xóa lịch sử duyệt web của mình để tăng tốc duyệt web mà không xóa cookie, tức là những trang tự động đăng nhập thì vẫn sẽ tiếp tục hoạt động nhưng lịch sử thì sạch sẽ. Khá tiện đúng không nào? Cách làm như thế này:
  1. Chạy Safari > menu History 
  2. Lúc menu History đang mở thì bạn nhấn giữ phím Option 
  3. Bạn sẽ thấy có dòng "Clear History and Keep Website Data…", nhấn vào đó 
  4. Xong

Khởi động lại Finder


Sẽ có lúc Finder bị đứng, bạn chẳng thể làm gì, chẳng thể copy file, chẳng thấy hình nền desktop, nói chung là Finder bị lỗi. Trong lúc này, bạn có thể khởi động lại Finder một cách nhanh chóng bằng cách dùng phím Option. Lưu ý rằng không chắc điều đó sẽ giúp Finder chạy bình thường trở lại, nhưng trong hầu hết trường hợp thì đều có tác dụng.

Cách thực hiện:
  1. Đưa chuột vào thanh Dock, ở biểu tượng Finder, nhấn đè phím Control + Option 
  2. Trong lúc đang đè 2 phím này thì click chuột trái vào icon Finder 
  3. Nhấn tùy chọn "Relaunch" để khởi động lại Finder




Chép đường dẫn của file hoặc folder


Chức năng này mới có trên OS X 10.11. Dễ làm lắm, khi bạn nhấp chuột phải vào một file bất kì trong Finder, bạn nhấn giữ thêm phím Option nữa thì sẽ có lựa chọn "Copy <tên file> as Pathname".


Thư mục này chứa một số file quan trọng với hệ điều hành và các ứng dụng mà bạn cài vào máy. Sẽ có lúc bạn cần đến nó để tinh chỉnh một thứ gì đó hay chỉ đơn giản là sửa lỗi app. Cách sửa thông qua thư mục Library không phải là hiếm đâu, nên biết cách mở thư mục này sẽ giúp bạn rất nhiều.
  1. Chạy Finder, hoặc nhấn ra màn hình desktop
  2. Nhấn vào menu Go
  3. Nhấn giữ phím Option, bạn sẽ thấy mục "Library" xuất hiện, click vào nó là xong.






Bật tắt nhanh chế độ không làm phiền



Do Not Disturb là chế độ tắt hết mọi thông báo của OS X, tiện khi bạn cần quay màn hình, đang chat với bồ và không muốn mấy em gái khác làm phiền, hoặc đang thuyết trình. Bình thường bạn phải mở Notification Center ra thì mới bật Do Not Disturb được, còn mẹo nhanh hơn như sau: nhấn giữ phím Option sau đó click vô biểu tượng Notification Center là xong. Làm tương tự để bật Do Not Disturb trở lại. Tiết kiệm được 1 thao tác click vào khoảng 0,69 giây chờ đợi.


Đổi ứng dụng mở mặc định



Bình thường để làm thao tác này thì bạn phải vào giao diện File Info để thực hiện, khá mất thời gian. Còn bây giờ, bạn có thể làm nó ngay từ menu chuột phải với sự trợ giúp của phím Option.



Cách thực hiện:
  1. Chọn vào một file nào đó trong Finder với định dạng bạn cần đổi 
  2. Nhấn chuột phải vào nó, sau đó nhấn giữ phím Option 
  3. Dòng "Always Open With" sẽ xuất hiện thay cho nút "Open With" bình thường 
  4. Nhấn vào và chọn ứng dụng mong muốn 

Gõ các kí tự đặc biệt


Để sử dụng các kí tự đặc biệt, ví dụ như œ∑´®†¥¨ˆ©∂ß∂ƒ˜, bạn có thể nhấn giữ phím Option trong lúc gõ. Nếu bạn nhấn Shift + Option + gõ phím thì lại ra một bộ kí tự khác nữa. Có những kí tự Latin rất hay, tiện cho anh em nào cần viết công thức toán học vật lý gì đó, cũng có những cái vui vẻ như biểu tượng trái táo  (Shift + Option + K) nhé.



Nếu cần trợ giúp xem phím nào ứng với kí tự đặc biệt nào, bạn hãy vào System Preferences > Keyboard > thẻ Keyboard > Show Keyboard, Emoji, & Symbol viewers in the menu bar. Sau đó, bạn sẽ thấy trên thanh menu của Mac có một mục tên "Show Keyboard Viewer", chọn vào. Trong màn hình mới xuất hiện, bấm phím Option để xem các kí tự.




Bỏ qua các file trùng khi copy


Lúc bạn copy file từ chỗ này sang chỗ khác, nếu hệ điều hành phát hiện hai hoặc nhiều file trùng nhau thì nó sẽ hỏi bạn muốn làm gì. Bạn có tùy chọn Keep Both, Stop và Replace. Chọn Keep Both sẽ giữ lại cả hai, Stop thì ngừng hẳn cả quá trình, rất uổng công chép, còn Replace thì thay thế file cũ bằng file mới. Nhưng nếu bạn chỉ đơn giản muốn bỏ qua các file trùng và không chép thì sao?

Hãy nhấn phím Option khi hộp thoại này hiện ra, và bạn sẽ có tùy chọn "Skip".



Command + A để chọn tất cả các file hoặc folder, còn Command + Option + A thì bỏ chọn hết bọn chúng.

Xem thông tin Wi-Fi



Nếu bạn nhấn phím Option và click chuột vào biểu tượng Wi-Fi của OS X, bạn sẽ thấy hàng loạt thông tin hữu ích mà bình thường bị ẩn đi. Chúng bao gồm địa chỉ IP của máy bạn, địa chỉ IP của router mạng, loại mạng là gì, có phải chuẩn N hay chuẩn AC hay không, băng tần bao nhiêu...

Lưu ý: phải nhấn phím Option trước rồi mới click vào Wi-Fi, làm ngươc lại không được.







Bỏ qua hộp thoại xác nhận khi tắt máy


Nếu bạn Shutdown, Restart hay Log Out thiết bị, bạn sẽ được hỏi xác nhận lại rằng bạn có thật sự muốn làm thao tác này hay không. Nếu bạn muốn bỏ qua bước xác nhận thì trước khi click Shutdown, Restart hay Log Out, bạn nhấn giữ thêm phím Option nữa là được.

Wednesday, October 28, 2015

Google nâng giá trần cho các app trên Play Store lên mức 400$ ở Mỹ, khoảng 9triệu ở Việt Nam


Như chúng ta đã biết, các app trên Google Play Store thì hầu hết là miễn phí. Và developer thì thường kiếm được nhiều tiền hơn nếu làm app cho hệ điều hành iOS của Apple AppStore. Đây cũng là một lý do tại sao mà nền tảng iOS thường được ưu tiên làm app trước.
Tuy nhiên, điều cũng dễ nhận thấy đó ngoài việc có rất nhiều app free (kèm quảng cáo, để developer còn sống nữa chứ :) ) thì, các app có phí phải mua của Google Play Store cũng có giá thấp hơn.

Tối hôm qua, Google Play đã có động thái nâng hạn mức giá trần của App bạn có thể bán trên Play Store. Theo đó, đáng chú ý là, ở thị trường Mỹ, trước khi giá cao nhất của App là 200$ thì đã được nâng giới hạn lên 400$. Ở Châu Âu, giá trần được tăng lên 350 Euro. Còn ở thị trường Việt Nam chúng ta, giá trần cũng được tăng giới hạn lên 9.000.000đ (chín triệu VND).




Mặc dù điều này không ảnh hưởng đến giới Lập Trình Viên nói chung, tuy nhiên, nó cũng thể hiện rằng Thị trường của VN chúng ta cũng đang được Google khá quan tâm.

Điều này còn có ý nghĩa ở chỗ, một số ứng dụng cao cấp đặc biệt, nhằm phục vụ mục đích chuyên môn hoá cao có thể sẽ xuất hiện trên các thiết bị di động mới trên nền tảng của Google Android.

Bạn có thể biết là một số phần mềm có giá rất cao, chức năng rất mạnh mẽ trên PC hiện chưa có cho  smart phone (ví dụ CAD, Corel Draw, ...), hoặc các phần mềm của các hãng lớn như Microsoft Office đã có trên smart phone thì tính năng thường được trả theo dạng subscription thay vì mua đứt bán đoạn như trước.

So sánh với Apple AppStore, giá trấn đã được nâng lên 1000$ từ trước. Chúng ta cũng nhớ đến ứng dụng rất thú vị là I am rich giá 1000$ :)

Friday, October 23, 2015

[MISC] MV Vợ Người Ta xem buồn cười quá

Đợt này đang rộ bài này, chất giọng nghe là lạ.


Nội dung bài hát buồn mà nghe không nhịn được cười.


Anh nào vác bài này ra hát ở đám cưới người trong mộng mới là bá.

Clip chế





MP3 320kbs gốc:




Download: Vợ Người Ta- Phan Mạnh Quỳnh - 320 kbps


Wednesday, October 21, 2015

[GUIDE][MAC] Hướng dẫn làm Service convert Images to JPG bằng Automator

Chắc hẳn bạn đã có lần muốn convert hàng loạt các file (RAW, PNG,... ) thành những File JPG trên chiếc máy Mac OS X của mình? Thay vì đi tìm và thử một vài tools, hoặc phần mềm nào đó khác nhau loằng ngoằng, bạn có biết rằng chỉ cần vài thao tác với Automator có sẵn của hệ điều hành Mac là bạn có thể hoàn thành được việc này.

Trong bài này, tôi sẽ hướng dẫn các bạn tạo một Service gắn vào Finder trong Mac OS X có chức năng convert file ảnh bất kỳ (có thể Preview được) thành file JPG bằng công cụ Automator của Mac OS X.



Các bước tiến hành cụ thể như sau.

Bước 1 • Khởi động tool Automator


Khởi chạy Automator từ Launchpad bằng cách nhấn vào app có biểu tượng con robot dễ thương, nó thường được đặt trong thư mục Other.

Bước 2 • Tạo project Service



Khi Automator được khởi động xong, nó sẽ tự động hiển thị bảng Template Chooser. Có nhiều loại template khác nhau, trong hướng dẫn này, ta chọn template Service, sau đó nhấn nút Choose.


Bước 3 • Chọn Files để process convert thành JPEG



Bên trên top của khung các Action mà Service sẽ dùng để làm đầu vào, ta chọn các tham số:
Service receives selected images files in Finder.app


Bước 4 • Thực hiện việc Duplicate các file đã được chọn ở Bước 3



Để tránh việc ghi đè vào file gốc, ta cần có bước này để duplicate (copy) file cũ thành file mói trước khi tiến hành convert.

Ở khung search Name action, gõ vào "Duplicate" để filter ra các kết quả có action có tên cần tìm. Kéo vào thả action "Duplicate Finder Items" từ bên action bên trái vào bên phải.


Bước 5 • Đổi tên file đã Duplicate ở Bước 4



Ở bước 4, sau khi thực hiện viẹc Duplicate, bạn sẽ có file mới có tên là "yourfile copy.xxx" Do đó, ở bước này bạn muốn đổi đoạn text " copy" thành text khác, ví dụ ở đây tôi sẽ đổi nó thành "_final", khi đó kết quả file nhận được sẽ là yourfile_final.jpg.

Tương tự như làm với bước 3, bạn gõ vào ô search action Name "Rename", rồi kéo thả item "Rename Finder Items" vào bên dưới Bước 3 ở trên.

Các tham số cài đặt gồm có:
- Combobox đầu chọn: "Replace Text"
- Find " copy" in "full name" check Ignore Case
- Replace "_final"


Bước 6 • Convert file tự động ở Bước 5 thành JPEG



Ở ô action Name, gõ vào "Change" để search. Kéo thả action "Change Type of Images" vào khung bên phải, bên dưới Bước 5 ở trên.
Tham số chọn là:
- Type JPEG

Với action này, các file image được support là các file có dạng BMP (.bmp), GIF (.gif), JPEG (.jpg or .jpeg), JPEG 2000 (.jp2), PDF (single page .pdf), PNG (.png), TIFF (.tif or .tiff), hoăc cả file PSD (Photoshop file .psd).


Bước 7 • Save Service


Nhấn Command + S, sau đó Gõ vào tên Service "Image To JPEG" và nhấn nút Save.


Bước 8 • Kiểm tra thành quả



Để convert bằng Service vừa tạo trên, bạn vào Finder, select 1 hoặc nhiều file muốn convert, Nhấn chuột phải và chọn Services > Image To JPEG.
Các files đã chọn sẽ được tự động convert thành file JPG.


Dành riêng cho các bạn lười :)
Bạn có thể download file .zip do mình làm sẵn, giải nén vào copy file vào thư mục ~/Library/Services rồi Relaunch lại Finder để apply.




Tuesday, October 20, 2015

[HOT] Microsft Office 2016 v15.15 Full kích hoạt sẵn (VL) activated

Liên quan đến bản Microsoft Office 2016 cũ hơn được chia sẻ trước đây, mới đây bản mới nhất v15.15 đã được phát hành.



Với phiên bản mới này, khuyến khích bạn nên cài mới sẵn theo bản VL (nếu trước đó bạn cài không phải là VL) thì nên làm.

Với những bạn đã chưa update lên bản mới hơn v15.13.3, Cách thức để có bản full kích hoạt sẵn bạn làm như sau.

1. Với những bạn đã chưa update lên bản mới hơn v15.13.3 (tức là bản Office 2016 for Mac của bạn có phiên bản thấp hơn v15.13.3), bạn cần download file cài đặt bản v15.13.3 đã được kích hoạt activated sẵn ở đây về: https://www.fshare.vn/file/KIK17MBEQ8PM

2. Tiến hành cài đặt bằng file đã download ở trên. Lúc đó thì bản Office 2016 for Mac của bạn sẽ tự được nâng cấp lên bản v15.13.3 và được kích hoạt sẵn.


3. Download các gói cài đặt riêng lẻ cho từng App mà bạn muốn nâng cấp lên bản v15.15 lần lượt ở đây, bản VL này cũng đã được kích hoạt sẵn, bạn không cần làm gì thêm:
- Word 2016 v15.15 https://www.fshare.vn/file/EFQ3X5NIF9QN - 861MB
- Excel 2016 v15.15 - https://www.fshare.vn/file/KIK17MBEQ8PM - 758MB
- PowerPoint 2016 v15.15 - https://www.fshare.vn/file/ZSORI1B6MERG
- Outlook 2016 v15.15 - https://www.fshare.vn/file/7E6FDA11SMID - 521MB
- OneNote 2016 v15.15 - https://www.fshare.vn/file/HFDB6METONXJ - 341MB

4. Tiến hành cài đặt các gói cập nhật trên như bình thường. Bản Office 2016 của bạn đã được nâng cấp lên bản v15.15 và được kích hoạt luôn. Bạn không cần làm thêm việc gì nữa.


Với những bạn đã trót update lên bản mới hơn rồi mà crack bị lỗi, hoặc ko bị crack được thì bạn sẽ mất công hơn. Bạn cần tháo gỡ uninstall bản không kích hoạt được mà bạn đã cài vào máy, sau đó tiến hành làm lại theo các bước ở trên.

Để xoá bản Office cũ lỗi trên, bạn có thể dùng các Tool như AppZapper, Clean My Mac,... để xoá.

Hoặc làm theo hướng dẫn chính chủ từ Microsoft: https://support.office.com/en-us/article/Uninstall-Office-2016-for-Mac-eefa1199-5b58-43af-8a3d-b73dc1a8cae3

Thursday, October 8, 2015

[GUIDE] Tạo accordion menu nhiều cấp bằng CSS

Bài viết hướng dẫn tạo một CSS accordion menu đơn giản nhưng hỗ trợ nhiều level của các item bên trong. Cách làm này, có thể chạy trên nhiều trình duyệt khác nhau: IE9+, Safary, Chrome, Firefox.


Trong bài hướng dẫn này, menu chỉ dùng CSS, với việc apply :checked pseudo-class selector của CSS trên các element input checkbox.
Ngoài ra, trong phần demo cũng có một phiên bản sử dụng jQuery, nếu bạn muốn có thêm các hiệu ứng animation để tăng phần sinh động.


DEMO   DOWNLOAD SOURCE

Tạo cấu trúc HTML của menu


Cấu trúc HTML của menu này khá đơn giản: đó là sử dụng 1 list các item. Nếu một item trong list, lại có các item con, thì chúng ta sử dụng một input[type=checkbox] kèm với label của nó để làm top row. Và đồng thời, chúng ta sẽ thêm .has-children class vào item đó trên list. Tất cả các item ở list lớp ngoài cùng, mà không có item con, thì chỉ cần để môt thẻ link a là được.

Chi tiết code như dưới đây:


<ul class="cd-accordion-menu">
<li class="has-children">
<input type="checkbox" name="group-1" id="group-1" checked>
<label for="group-1">Group 1</label>

<ul>
<li class="has-children">
<input type="checkbox" name ="sub-group-1" id="sub-group-1">
<label for="sub-group-1">Sub Group 1</label>

<ul>
<li><a href="#0">Image</a></li>
<li><a href="#0">Image</a></li>
<li><a href="#0">Image</a></li>
</ul>
</li>
<li><a href="#0">Image</a></li>
<li><a href="#0">Image</a></li>
</ul>
</li>

<li><a href="#0">Image</a></li>
<li><a href="#0">Image</a></li>
</ul> <!-- cd-accordion-menu -->


Thêm style CSS

Chúng ta sử dụng một cách khá đơn giản (ngày nay thường làm thế này), để phát hiện ra item được click, và show các item con của nó, chỉ bằng CSS: đó là như đã đã nói ở trên, ta dùng một checkbox input element. Với việc select class :checked của input checkbox đó, ta sẽ bắt được element đó có checked hay chưa, và tiến hành show/hide các item con của nó bằng cách change display từ "none" thành "block" (và ngược lại nếu để hide đi).

Cụ thể step-by-step từng bước một như sau:

1) Đầu tiên, chúng ta phải kiểm tra lại rằng tất cả các item lớn bên ngoài mà có chứa các item con bên trong, thì cần phải có input checkbox như đã làm sample HTML ở trên
2) Chúng ta cũng phải chắc chắn rằng, khi mà chúng ta click vào label của nó, thì checkbox đó cũng tự động được check. Nếu bạn quen thuộc với HTML rồi, thì việc này khá là đơn giản, ở input checkbox bạn cần đặt cho nó một id value, và ở label, bạn cần đặt value id của checkbox vào thuộc tính for của nó.


Dưới đây là code CSS mà chúng ta sẽ sử dụng để hiển thị Menu bằng CSS ở trạng thái ban đầu:


.cd-accordion-menu input[type=checkbox] {
/* hide native checkbox */
position: absolute;
opacity: 0;
}
.cd-accordion-menu label, .cd-accordion-menu a {
position: relative;
display: block;
padding: 18px 18px 18px 64px;
background: #4d5158;
box-shadow: inset 0 -1px #555960;
color: #ffffff;
font-size: 1.6rem;
}


Bây giờ, ta nhận thấy rằng cấu trúc HTML cho input, label, list các item đã được xếp theo thứ tự. Tiếp theo, chúng ta dùng cơ chế select :checked của CSS để thực hiện hiển thị các element con bên trong nó bằng cách thay đổi value display từ "none" thành "block";


.cd-accordion-menu ul {
/* by default hide all sub menus */
display: none;
}

.cd-accordion-menu input[type=checkbox]:checked + label + ul,
.cd-accordion-menu input[type=checkbox]:checked + label:nth-of-type(n) + ul {
/* use label:nth-of-type(n) to fix a bug on safari (<= 8.0.8) with multiple adjacent-sibling selectors*/ /* show children when item is checked */ display: block; }


Như vậy là ta đã hoàn thành một menu accordion chỉ bằng CSS.

Nếu bạn muốn menu có thêm các hiệu ứng chuyển động animation khi cụp xoè (show/hide) item con, thì chỉ việc include thêm javascript vào.

DEMO:



Bài viết được dịch dựa vào nguồn: https://codyhouse.co/gem/css-multi-level-accordion-menu/

Wednesday, October 7, 2015

[TOOLS][APPS][MAC] App to auto generate Icon for iOS, Android development

Hôm nay tôi đã update bản mới của Tool Generate App icon đã được giới thiệu ở đây: [TOOLS] - Auto generate icon for iOS app.


Trong bản mới này, tôi đã fix một số thứ:

- Hỗ trợ chạy trên Mac OS X 10.11 El Capitan mới nhất
- Hỗ trợ nền tảng Android với tool Android Studio mới nhất. Icon sẽ được generate ở các định dạng cho đủ các folder src/drawable, src/mipmap.
- App cũng đổi tên thành Mobile Apps Icon Generator.

Download: https://github.com/laptrinhcomvn/ios-app-icon-generator/releases

Source code: http://laptrinhcomvn.github.io/ios-app-icon-generator/

Tuesday, September 29, 2015

iOS9 - Một số điểm mới khi phát triển và upload lên AppStore

iOS9 đã được chính thức phát hành, và như thường lệ, rất nhiều người dùng đã nâng cấp phần mềm cho chiếc iPhone của mình. Lúc này cũng là lúc mà các lập trình viên phải vất vả để nâng cấp app của mình sao cho tương thích với iOS9. Dưới đây là một số điểm mới cần chú ý khi phát triển app cũng như là khi upload app lên AppStore.


Lỗi xuất hiện do thay đổi của iOS9


App Transport Security Policy Error

Failed to load resource: The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

Apple đã siết chặt thêm tính bảo mật ở iOS 9, và họ ngăn chặn các kết nối không an toàn. Điều này là rất tốt, nhưng nếu bạn, có cần có những kết nối không an toàn này trong app, thì bạn phải làm thêm một số bước trick để tạm vượt qua được hạn chế này bằng cách add đoạn code bên dưới vào trong file AppName-info.plist.


<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true>
</true></dict>


-canOpenURL: failed for URL


-canOpenURL: failed for URL: "://" - error: "This app is not allowed to query for scheme "
-canOpenURL: failed for URL: "about:blank" - error: "This app is not allowed to query for scheme about"



App của bạn có nhúng webview, và trong webview đó có thực hiện thao tác để mở một trang web? App của bạn sử dụng custom URL?
Thế thì khả năng cao bạn sẽ dính phải lỗi này.
Nguyên do là Apple đã thay đổi cách hoạt động của API canOpenURL trong iOS 9 bằng cách thêm 1 khoá là LSApplicationQueriesSchemes được cài đặt trong file Info.plist.

Giải pháp là bạn cần phải đặt URL Scheme vào danh sách Whitelist mà app có thể mở được.

Mở file Info.plist bằng Source Code view và thêm các schemes cần thiết cho app vào ví dụ:


<key>LSApplicationQueriesSchemes</key>
<array>
<string>twitter</string>
<string>whatsapp</string>
<string>fb</string>
</array>


Các thư viện của bên thứ 3 bị lỗi


Nếu app của bạn dùng thư viện 3rd party, bạn cũng cần check lại cẩn thận vì có thể một số hàm hoặc Categories trong các thư viện đó bị lỗi khi build bằng XCode 7 hoặc chạy trên iOS9.
Ví dụ JSONKit,...


Bàn phím ảo mới



Apple đã cải tiến lại bàn phím ảo cho iOS 9 mà họ gọi là "best keyboard yet" (chưa bao giờ tuyệt vời như thế) kế thừa các tính năng từ iOS 8 QuickType.

Bạn có thể đã gặp phải trường hợp khi mình gõ sai text, sau đó bạn phải nhấn và giữ ngón tay trên 1 con chuột hình thanh dọc nhấp nháy nhỏ xíu để di chuyển nó đến chỗ sai khi sửa đổi.
Con trỏ (cursor) khi edit text bây giờ có thể điều khiển 1 cách dễ dàng bằng cơ chế trượt 2 ngón tay trên bàn phím ảo. Với cải tiến này, iPad QuickType keyboard biến thành 1 trackpad như là trên các máy Mac. Với cải tiến đáng giá này, bạn sẽ dễ dàng hơn rất rất nhiều trong việc di chuyển con trỏ tiến lui lên xuống đến vị trí mong muốn khi edit text.


Hơn thế nữa, iOS 9 bây giờ cũng hỗ trợ các shortcuts để nếu bạn có sử dụng bàn phím wireless thì bạn cũng thực hiện các thao tác được nhanh và dễ dàng hơn thông qua built-in shortcut keys. Nhấn giữ các nút Command, Options hoặc Control sẽ hiển thị ra danh sách các shortcut.

Và là lập trình viên, bạn cũng cần biết được điều này để update app của mình sao cho tiện lợi cho người dùng nhất.


New San Francisco Font


Đây có lẽ là phần đau đầu nhất đối với việc update app. Có lẽ bạn đã quen với việc set các text or label của mình bằng font mặc định. Ở iOS8 trở về trước, HelveticaNeue là FontFamily cho system. Font HelveticaNeue được nhận định là không thích hợp cho các thiết bị có màn hình nhỏ như Apple Watch, do khi hiển thị các text có size nhỏ thì font này có thể làm cho text bị nhoè, khó đọc.
Do đó Apple đã quyết định thiết kế bộ Font mới là San Francisco cho iOS9 làm font system mặc định.
Điều này sẽ gây ra việc các label, button, có thể bị nhảy size do kích cỡ text cần hiển thị bị thay đổi. Nhất là đối với những app sử dụng cách tính size của text dựa trên font, hoặc không sử dụng Autolayout khi code giao diện, bạn sẽ nhanh chóng phải sửa lỗi này.


Swift2 được ra mắt

Nếu app của bạn được code bằng Swift thì Apple đã nâng cấp Swift lên phiên bản 2. Bạn có thể kiểm tra lại để nâng cấp app của mình.

Tham khảo

Ngoài những điểm hay gặp ở trên, Apple cũng cho biết các điểm thay đổi mà developer cần chú ý gồm:

  • OCR accessory setup
  • Search extensibility
  • Audio unit extension
  • VPN plug-in extension
  • Swift 2
  • Map customization
  • Direct document
  • UI testing in Xcode
  • Notification actions
  • Third party notifications
  • Sensor profile
  • App thinning
  • Motorized windows profile
  • New Health data types
  • Flyover and Walkthrough
  • Code Coverage
  • Gaming APIs
  • Layout guide
  • Shortcut bar
  • Automated shades profile
  • Object-oriented Contacts
  • New HomeKit profiles
  • iCloud open in place
  • Home security profile
  • Storyboard references
  • App transport security API
  • Stack view
  • Wireless CarPlay
  • HomeKit iCloud remote access

Một số chi tiết thay đổi khác bạn có thể tham khảo thêm ở đây: https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html#//apple_ref/doc/uid/TP40016198-SW1



Upload lên AppStore


Kết nối account itunesconnect vào XCode 7

Apple đã có một số thay đổi ở bản XCode7 so với bản cũ. Khi build và sign app của mình, bạn phải kết nối account itunesconnect vào mục XCode > Settings > Accounts. Nếu bạn là personal, ko sử dụng account team, có thể bạn không cần quan tâm do khi đó account itunesconnect và account developer của bạn sử dụng chung email. Tuy nhiên, khi bạn làm team, account itunesconnect có thể bị khác với account developer, lúc đó bạn sẽ phải làm thêm việc này.


Gặp lỗi khi upload: Invalid Bundle. iPad Multitasking support requires launch story board in bundle



Như bạn đã biết là Apple release iOS9, và trong cùng sự kiện đó là ra mắt iPad Pro. Và đây là cài đặt dành riêng cho iPad Pro, giúp thiết bị này nhận biết và xử lý khi app của bạn có sử dụng tính năng split-view/multitasking.

Bạn sẽ gặp lỗi này nếu app của bạn không chỉ ra cách mà iPad sẽ xử lý như nào để support multitask.

Một số nguyên nhân có thể là: Không sử dụng Storyboard để gán Launch screen; nhất là app của bạn sử dụng tính năng split screen. Nếu app của bạn không support multitasking, để khắc phục, bạn chỉ cần đơn giản check vào 'Requires full screen' trong tab General Options của target trong Xcode.

Thursday, September 10, 2015

Mac OS X - Chia sẻ một số APP hữu ích mà bạn nên có - Part 1


Sau thời gian dài sử dụng Mac OS X cho công việc (developer) cũng như là cho giải trí, tôi cũng rút ra được danh sách 1 số các app có cả free, cả có fee (hầu hết là FREE) mà luôn sử dụng một cách tiện lợi cho Mac OS X. Nhân đây cùng chia sẻ với các bạn.

1. Các app về hệ thống


Các apps về hệ thống có thể là plugin có thể là app độc lập, nhằm giúp cho bạn sử dụng các thành phần có sẵn trong Mac OS X được nhanh gọn, thuận tiện hơn.

1.1 XtraFinder

Đây là một app miễn phí do Trần Kỳ Nam phát triển. Nó mang lại rất nhiều tính năng gắn vào tool Finder quen thuộc, mà bạn sẽ rất cần có trên Mac OS X. Thật tuyệt vời khi app này là của một người Việt viết ra. Với app nhỏ này, các tính năng mới sau đây được thêm vào:

• Tabs & Dual Panel.
• Arrange folders on top. - Sắp xếp folder lên trên các files.
• Cut & Paste. Copy queue. - Thêm tính năng Cut & Paste vào Finder.
• Global hotkeys. - Cho phép cài đặt 1 số phím nóng (phím tắt) để làm một tác vụ gì đó.
• "Copy Path", "Show Hidden Items", "Hide Desktop", "Refresh", "New File", "Copy to", "Move to", "New Terminal Here", "Make Symbolic Link", "Contents", "Attributes", … . Thêm các tính năng mới như: Copy đường dẫn của thư mục, file; Hiển thị các thứ đã bị ẩn đi; Refresh; Copy to; Tạo symbolic link;... quá hữu ích
• Legacy label for OSX 10.9 & 10.10. Light text on dark background. Transparent window.
• Colorful icons in Sidebar.
• Size of selected items in Status Bar. - Hiển thị file size ở status bar.
• Automatically adjust width of columns. - Tự động điều chỉnh bề rộng của các cột nếu duyệt file theo layout cột.
• Press Enter or Return to open selection. - Thay đổi tính năng của nút Return (Enter) thay vì đổi tên thành mở file đã chọn.
• Display folder item count in List view. - Hiển thị số items con có trong 1 thư mục.
• Middle-click to open folder in new window or new tab. - Nhấn vào nút giữa (con lăn) của chuột ngoài để mở Folder ở cửa sổ mới hoặc tab mới.
• Much more.

Bạn có thể nhanh chóng tải bản cài đặt "chính chủ" cũng như là tìm hiểu thêm ở website của anh ấy tại đây: http://www.trankynam.com/xtrafinder/


Thêm một lựa chọn khác: Nếu bạn có điều kiện và sẵn sàng chi tiền, hãy thử phần mềm Path Finder.

1.2 Lịch trên menu bar

Một phần mềm cực kỳ nhanh gọn nhẹ cho bạn để thay thế cho calendar của Apple trên menu bar, phần mềm khá nổi tiếng, đó là Itsycal for Mac. Bạn có thể download free (open source) ở đây:
https://www.mowglii.com/itsycal/



Một phần mềm quá nhẹ và tiện dụng cho nhu cầu của mình. Và suggest bạn đây là một phần mềm cần có và nên cài vào mày của mình để xài nhé.



Update: App Day-O hiện không còn được phát triển nữa.


Đây vốn là 1 ứng dụng cực kỳ đơn giản dùng để thay thế cho cái lịch còn đơn giản hơn nữa của Apple có sẵn ở trên status bar. Chức năng đơn thuần của nó là hiển thị 1 bộ lịch đầy đủ, và không kết nối đến iCal, hoặc Reminder nào khác. Và do đó dung lượng bộ nhớ khi chạy thường trực của nó cũng rất chi là nhỏ: 11MB. Bạn có thể download ở đây: http://shauninman.com/assets/downloads/Day-O.zip

Nếu bạn muốn một ứng dụng tương tự, nhưng bóng bẩy hơn, có tích hợp với iCal & Reminder, bạn nên sử dụng app Calendar, bù lại app này cũng tốn bộ nhớ hơn, khoảng 100MB.



1.3 Plugin QuickLook cho Finder


Trong Mac OS X có chức năng khá hay với Finder, khi bạn focus vào một file/folder, nếu nhấn phím cách (space) bạn sẽ có một cửa sổ dạng popup nhảy ra gọi là Quicklook giúp ta có thể xem nhanh nội dung hoặc thông tin. Và có rất nhiều plugins có các chức năng khác nhau giúp ta view trước được nhiều loại files khác nhau.

Các file plugin cho QuickLook này được cài đặt rất dễ dàng bằng cách copy file XXX..qlgenerator vào thư mục ~/Library/QuickLook/ (hoặc thư mục /Library/QuickLook/) là được.
Sau khi copy, nếu plugin không tự khởi động và được apply ngay, hãy mở terminal và gõ vào dòng lệnh: qlmanage -r


QuickLook JSON

Bạn là developer thì chắc hẳn là không thể thiếu được plugin này rồi: http://www.sagtau.com/quicklookjson.html
Plugin này giúp bạn xem nhanh được file JSON một cách có format đẹp và rõ ràng.



QLStephen để view text file

Đôi khi có những file README, và bạn ko cần thiết phải run TextEdit lên chỉ để đọc nó, bạn hãy dùng plugin QLStephen này.
Nó giúp bạn xem nhanh được nội dung của các textfile thường gặp như: README INSTALL CHANGELOG Makefile Rakefile CapFile


QLMarkdown để xem nhanh nội dung các file .md

Đây là plugin giúp bạn xem nhanh nội dung file .md ở dạng đã compile một cách đẹp đẽ, chứ không còn là nội dung text nữa QLMarkdown này.


IMLTotalImagesQL Xem nhanh info của file image

Đây là plugin giúp bạn xem được một số info của file ảnh: size width x height; kích thước file. Bạn có thể download ở đây: IMLTotalImagesQL này.


IMLTotalImagesQL Xem nhanh info của file image

Đây là plugin giúp bạn xem được một số info của file ảnh: size width x height; kích thước file. Bạn có thể download ở đây: IMLTotalImagesQL này.


BetterZipQL Xem nhanh nội dung file zip

Plugin giúp bạn xem trước được nội dung các loại file: ZIP, RAR, 7-Zip, TAR, TGZ, TBZ, TXZ, GZip, BZip2, ARJ, LZH, ISO, CHM, CAB, CPIO, DEB, RPM, StuffIt's SIT, BinHex, MacBinary, Apple Disk Images (DMG) và winmail.dat! Bạn có thể download ở đây: BetterZipQL , hoặc ở trang gốc (bây giờ plugin này đươc tích hợp vào app BetterZip): http://macitbetter.com/BetterZip-Quick-Look-Generator/.



Note: Ngoài ra còn có 1 kho các plugin khác cho bạn cần tìm hiểu và sử dụng thêm nếu muốn ở đây: http://www.quicklookplugins.com


1.4 Color Picker plugins


Bạn là (web) developer tôi chắc chắn rằng bạn sẽ thấy tiện lợi hơn nhiều lần sau khi bạn đã cài những plugin được tôi chia sẻ ở đây: https://drive.google.com/open?id=0B1A6O4kvkB1UNGhZLU9FbG1uVVE

Tương tự với cách cài đặt QuickLook plugin ở trên, bạn cài plugin cho color picker vào thư mục: ~/Library/ColorPickers (hoặc /Library/ColorPickers)

Monday, August 17, 2015

[HOT] Microsoft Office 2016 UPDATE v15.13.1 Final Full Activated For Mac OS X

Vào tuần trước, Microsoft đã cung cấp bản cập nhật cho Microsoft Office 2016 for Mac OS X, v15.13.1. Với bản mới này, biện pháp activate lậu đã bị disable.
Cho đến hôm nay, cộng đồng đã nhận được bản chia sẻ mới giúp những ai chưa có điều kiện được xài "thử miễn phí" đến khi có điều kiện mua bản quyền chính thức từ Microsoft.



Nếu bạn chưa dùng thì có đôi lời giới thiệu về Microsoft Office 2016 for Mac như dưới đây:

Office 2016 cho Mac tập trung phần lớn vào việc cải tiến giao diện cho phù hợp với các phiên bản OS X mới, hỗ trợ màn hình retina, thao tác bàn rê chuột multi-touch cũng như kết nối đến các dịch vụ đám mây của Microsoft.

Trong đó, tính năng thể hiện rõ nhất điều này là nhiều người dùng sử dụng Office for Mac 2016 có thể làm việc cộng tác trên một tài liệu theo thời gian thực, trên những nền tảng khác nhau bao gồm Mac, iPad và PC. Bộ ứng dụng này gồm các tiện ích Word, Excel, PowerPoint, Outlook và OneNote.

Các công cụ trong bộ Office for Mac mới đều được Microsoft chăm chút cả về giao diện lẫn tính năng. Ứng dụng soạn thảo văn bản Word được thiết kế lại bố cục với các công cụ gom về một mối và sắp xếp dưới dạng thẻ (tab). Ứng dụng tạo trình chiếu PowerPoint tích hợp chế độ trình chiếu mới, đa năng và đẹp mắt hơn.

Tiện ích tạo bảng tính Excel hỗ trợ nhiều tính năng, cụm phím tắt mới giúp thao tác nhanh hơn. Chức năng mới PivotTable Slicer trên Excel cho phép đặt thuộc tính cho các dữ liệu nhanh hơn so với cách thủ công. Công cụ quản lý thư điện tử Outlook for Mac hỗ trợ chức năng push mail tốt hơn, giao diện hiển thị các nhóm email trực quan và xem trước nội dung nhanh hơn.


Còn đây là cách để activate lậu phiên bản v15.13.1 - How to activate Office 2016 for Mac v15.13.1


  1. Download activate tool here - Tải công cụ hỗ trợ active về ở đây.
  2. Extract downloaded file "Patch Office 15.3.1 [fix].zip", you got new file named "Patch Office 15.3.1 v1.3.pkg" - Giải nén file download được file mới.
  3. Quit all of Office Applications (Outlook, Word, Excel, OneNote) - Quit tất cả các ứng dụng Office mà đang chạy
  4. Run extracted file - Chạy file "Patch Office 15.3.1 v1.3.pkg" đã xả nén được ở trên
  5. Enter your Mac Login password when prompted - Nhập vào mật khẩu sử dụng để login vào máy Mac khi được yêu cầu và chọn Enter.
  6. Wait to complete activate process and Done - Chờ đợi tool cài đặt xong và Office v15.13.1 đã được activated.
Note: 
 - At step 5, you may noticed that Apple has been prevented unidentify developer app to run. So you must go to Settings > Security & Privacy tab, then click to Open Anyway button to run patch tool.
- Ở bước thứ 5, bạn có thể nhận được một thông báo là Apple đã block activate tool không cho chạy, bạn cần phải vào Settings > Security & Privacy tab, sau đó nhấn vào nút Open Anyway để có thể chạy nó.

- If at first activate run time, some apps not activated, you may run activate tool again.
- Nếu activate lần đầu mà vẫn chưa được, bạn lặp lại các bước trên để chạy activate tool thêm lần nữa.



Friday, May 29, 2015

Google Photos - Ứng dụng và dịch vụ mới của Google từ IO 2015

Trong buổi thuyết trình ngày 28/5/2015 tại Google IO 2015, Google cũng giới thiệu dịch vụ Photos mới của mình.
Dịch vụ này được tách từ Google+ Photos ra thành một sản phẩm độc lập. Đồng thời Google bổ sung thêm nhiều tính năng mới để giúp việc sử dụng nó trở nên dễ dàng hơn. Đầu tiên là khả năng tìm kiếm và phân loại ảnh thông minh mà không cần bạn phải đánh tag hay đổi tên gì cả, kế tiếp là những cử chỉ mới để việc duyệt ảnh trở nên tiện lợi hơn trên app Photos mới (có cho Android, iOS và nền web). Nhưng điểm đáng chú ý nhất đó là Photos cho phép chúng ta lưu file ảnh độ phân giải cao đến 16MP và video 1080p mà không phải tốn đồng xu nào cả. Ứng dụng Photos đã có thể tải về ngay từ bây giờ.


Tải về:


1. Lưu ảnh/video độ phân giải cao không giới hạn


Với mục tiêu trở thành một khu vực lưu trữ và tổng hợp nội dung đa phương tiện cho người dùng, Google Photos cho phép chúng ta lưu ảnh và video lên đây mà không có bất kì sự giới hạn nào về dung lượng hay số lượng tập tin cả. Thứ duy nhất mà Photos hạn chế độ là độ phân giải: với ảnh là tối đa 16MP, còn với video là tối đa Full-HD. Tuy nhiên chỉ với hai độ phân giải này thì cũng đã dư dùng cho đa số chúng ta rồi. Google hứa hẹn sẽ nói thêm về không gian lưu trữ trên Photos trong thời gian tới.


2. Tìm kiếm, phân loại thông minh


Trong bài thuyết trình của mình, Google có trình diễn những tính năng thông minh này bằng một số ví dụ sau:

  • Gõ chữ "bão tuyết ở thành phố X", Photos tự động tìm các ảnh nào chụp trong khoảng thời gian thành phố X bị bão tuyết. Tương tự cho việc tìm kiếm các ảnh nào có xe, có chó, có đồng hồ... hiện diện
  • Tự động nhận biết gương mặt có trong ảnh, sau đó liệt kê và tìm kiếm các ảnh khác có gương mặt của người đó xuất hiện, và tất nhiên là không cần sự can thiệp nào từ người dùng một cách thủ công.
  • Hỗ trợ sắp xếp ảnh thông minh theo ngày giờ, sự kiện chụp
  • Tự động tinh chỉnh, áp dụng hiệu ứng (bao gồm cả HDR) cho ảnh
  • Tự động tạo các đoạn video vui vẻ bằng cách ghép nhiều ảnh hoặc video clip lại với nhau. Điều này khá giống tính năng Auto Awesome của Google+ Photos, có điều trong Photos thì tính năng này đổi tên thành Assistant. Cũng từ Assistant bạn có thể ghép ảnh theo kiểu collage, tạo câu chuyện ảnh... giống trên Google+.



3. Các cử chỉ duyệt ảnh mới


  • Với ứng dụng Photos trên Android và iOS, bạn có thể dùng một số cử chỉ cảm ứng sau để việc duyệt ảnh trở nên tiện và nhanh hơn:
  • Vuốt hai ngón tay vào trong (zoom out) để chuyển giữa chế độ xem ảnh chụp theo tuần, tháng hoặc năm
  • Vuốt hai ngón tay ra ngoài (zoom in) để làm điều ngược lại
  • Khi đang xem một ảnh nào đó, dùng một ngón tay vuốt lên để thu nhỏ ảnh và quay trở lại giao diện trước
  • Có thể chọn cùng lúc nhiều ảnh bằng cách nhấn giữ ngón tay rồi quét trên màn hình, giống như cách xài chuột để chọn nhiều file trên máy tính. Không cần nhấn chọn từng tấm một như trước nữa.




4. Chia sẻ nhanh


Dù bạn đang xem từng tấm ảnh lẻ hay đang coi một album cả trăm tấm thì Photos vẫn hỗ trợ chia sẻ cực kì nhanh chóng. Bạn chỉ việc nhấn một hai thao tác lên màn hình là đường link dẫn đến ảnh/album sẽ được tạo ra. Bạn có thể gửi đường link này cho bạn bè hay người thân xem, và người được chia sẻ không cần phải đăng nhập hay làm thêm chuyện gì phức tạp. Họ chỉ việc mở link đó bằng trình duyệt là đã có thể bắt đầu thưởng thức ảnh/video độ phân giải cao.



Bài viết được tổng hợp và trích dẫn từ: TinhTếGoogle Photos Blog.