12/08/2018, 13:51

Simulating location with Xcode

Giới Thiệu Chào mọi người, trong các bạn làm mobile ắt cũng nghe về định vị trên mobile. Hôm nay mình sẽ không đi sâu vào việc sử dụng location service trong code như thế nào mà sẽ hướng đến việc giả lập location trên iOS. Location Services là dịch vụ hệ thống giúp định vị vị trí gần đúng của ...

Giới Thiệu

Chào mọi người, trong các bạn làm mobile ắt cũng nghe về định vị trên mobile. Hôm nay mình sẽ không đi sâu vào việc sử dụng location service trong code như thế nào mà sẽ hướng đến việc giả lập location trên iOS.

Location Services là dịch vụ hệ thống giúp định vị vị trí gần đúng của bạn. Nếu bạn đang làm một ứng dụng yêu cầu location services, bạn ắt hẳn có nhu cầu rất lớn về cách làm sao debug được ứng dụng của bạn ở nhiều nơi, nhiều chế độ để xem có chạy tốt không.

Thay vì phải đi bộ hoặc xách xe máy đi thì Xcode sẽ có thể giúp bạn mô phỏng được một địa điểm được chỉ định hay cho phép bạn di chuyển giữ một số địa điểm. Chúng ta có thể mô phỏng location cả trên simulator hay real device.

GPX File

Xcode sẽ dùng file định dạng .gpx để giả lập location của bạn. File GPX định nghĩa một hoặc một loạt các điểm dựa trên latitude và longtitude. Một lưu ý là Xcode chỉ dùng tag <wpt>, nếu các bạn sử dụng một số tool generate GPX file thì phải chú ý đến điều này nếu không Xcode sẽ không làm việc với file GPX của các bạn.

Giả lập một địa điểm

Xcode có sẵn option tạo file GPX bạn có thể vào theo hình sau, nhưng bạn phải add tay các địa điểm vào khá bất tiện.

locationTest_xcodeproj.png

Có một số trang online cho phép chúng ta generate file GPX tiện lợi hơn http://gpx-poi.com/ . Bạn chỉ việc điều chỉnh marker đến vị trí mong muốn, đặt file name và chọn system phù hợp rồi download về máy. GPX-POI_file_generator.png

Giả lập một route

Để giả lập một tuyến đường, file GPX sẽ định nghĩa một loạt các điểm. Để việc khởi tạo đơn giản bạn có thể vào google map để thiết lập tuyến đường mong muốn, chọn chế độ walk, bicycle hoặc driver. Mình sẽ giả lập đi bộ từ Framgia Đà Nẵng đến cầu rồng.

247_Ông_Ích_Khiêm__Vĩnh_Trung__Q__Thanh_Khê__Đà_Nẵng__Vietnam_to_Cầu_Rồng__An_Hải_Tây__Sơn_Trà__Đà_Nẵng__Vietnam_-_Google_Maps.png

Sau đó vào trang https://mapstogpx.com/mobiledev.php để generate ra GPX file. Các bạn chỉ việc paste url của googlemap bạn tạo ở trên và chọn option là Xcode. Maps_to_GPX_Converter_for_location_aware_development.png

Vậy là chúng ta đã có đủ đồ chơi để simulate location.

Simulate with Xcode

Giờ mở project của bạn, vào target kiểm tra xem đã enable allow simulate location hay chưa. Chạy ứng dụng lên và bắt đầu simulate.

Menubar.png

Xcode có sẵn một số địa điểm mặc định nhưng chúng ta sẽ import các file GPX đã tạo ở trên. Sau đó chỉ việc chọn các file GPX tương ứng mà bạn muốn.

Screen_Shot_2016-09-11_at_11_05_36_AM.png

Một số lưu ý

Việc simualte location sẽ ảnh hưởng đến location của máy nên tất cả các ứng dụng đều nhận được location fake. Điều này có nghĩa ứng dụng map hoặc PokemonGo cũng nhận được location tương tự. Bạn có thể ăn gian một chút với PokemonGo mà không cần jailbreak máy.

Khi bạn chưa tắt simulate location mà rút cáp thiết bị thì bạn vẫn còn simulate location cho đến khi bạn khởi động lại hoặc cắm device vào và chọn tắt simulate location.

Trên đây là kinh nghiệm của mình khi vọc vạch về location. Hy vọng sẽ có ích cho các bạn trong quá trình làm việc với location services.

0