iOS Swift - Share project rao vặt bất động sản

iOS Swift – Share project rao vặt bất động sản (Quà năm mới 2018)

iOS Swift – Share project rao vặt bất động sản (Quà năm mới 2018)

Hello các bạn,

Happy new year 2018, best wishes for all!

Mình có món quà nhỏ dành cho các bạn, là dự án rao vặt bất động sản mà mình làm trong tháng 11-12 qua.

Mong rằng project này sẽ hỗ trợ các bạn tham khảm và học tập tốt hơn về Swift.

Công nghệ sử dụng

  • iOS
  • Swift 3
  • Apple Mapkit
  • Firebase (Cloud storage)
  • WebService (ASP.NET WebAPI 2)
  • Client – Server
  • RESTFul API
  • SQL Server

Đây là những công nghệ mình sử dụng để đồ án hoàn thiện tốt được.

Về phía Server (WebService)

Sử dụng:

  • .NET
  • ASP.NET WebAPI 2 (RESTFul API)
  • Entity Framework
  • SQL Server (2012)

Để cài đặt được WebService và sử dụng, các bạn có thể dùng IIS để triển khai website.

Demo api helpers: (API server đã dead >.<)

Trong link trên chứa các API mà mình đã tạo ra sẵn để phục vụ project.

P/s: với Webservice này, các bạn có thể học hỏi thêm được về Entity Framework cũng như là ASP.NET WebAPI, cách triển khai, code,…

Tải về:

Tại đây: https://drive.google.com/open?id=1inqcN2CZxQHZD3AhuqOAmbfSXS04kLYe

Lưu ý:

Các bạn có thể khởi tạo table thông qua migration (tìm trên blog mình sẽ thấy)

Ngoài ra project đã đi kèm với connectionString tới host của mình, các bạn có thể dùng SQL Management để kết nối tới và export .sql nếu muốn.

Nhớ sửa lại connectionString trong Web.config để có thể kết nối được tới DB.

Về phía Client (iOS App – Swift)

Sử dụng công nghệ:

  • iOS 9+
  • Swift 3
  • Apple Mapkit

Các plugins tích hợp:

  • Alamofire: dùng để request GET/POST với WebService.
  • SwiftyJson: dùng để parse Json.
  • ImageSlideshow: Slider hình ảnh, có hỗ trợ zoom.
  • Dropdowns: để tạo ra Navigation Menu.
  • Fusuma: Image picker giống Instagram, hỗ trợ chụp hình và chọn nhiều hình.
  • Kingfisher: hỗ trợ load Image từ URL và cache image đó.
  • Firebase/Storage: dùng để lưu trữ hình bài viết.

Các pages(scenes) đã làm:

  • Trang chủ
    • Hiện các tin tức mới nhất (limit 10 tin)
    • Hiện navigation menu chứa toàn bộ các danh mục (nhấn vào sẽ đổi chuyên mục)
    • Hỗ trợ tìm kiếm
    • Hỗ trợ khi vuốt lên sẽ refresh lại page
    • Hỗ trợ khi kéo xuống cuối sẽ load thêm (nếu còn bài viết)
    • Nhấn vào bài viết bất kì, sẽ chuyển qua trang chi tiết bài viết.
    • Nhấn (+), mở trang thêm bài viết mới.
  • Trang thêm bài viết
    • Hỗ trợ chọn hình trong máy thông qua Fusama, chọn xong sẽ tự động upload hình lên Cloud Storage.
    • Các hình đã chọn sẽ hiển thị trong Image slider bên dưới.
    • Hỗ trợ chọn vị trí bài đăng trên map
  • Trang chọn vị trí bài đăng
    • Hiển thị Apple Mapkit
    • Nhấn vào vị trí trên map để chọn vị trí của mình (gán Marker/Annotation)
    • Hỗ trợ tìm kiếm theo địa chỉ
  • Trang chi tiết bài viết
    • Hiển thị toàn bộ thông tin của bài viết
    • Hiển thị toàn bộ hình ảnh bài viết trong Image slider
    • Nhấn các nút tương ứng bên dưới để thao tác: Gọi điện, qua trang Comment, qua trang Map
  • Trang bình luận
    • Hỗ trợ người dùng bình luận về bài viết này
    • Hiển thị toàn bộ bình luận.
  • Trang Map
    • Mở ra vị trí có gán Marker/Annotation của bài viết này.

Demo hình ảnh:

iOS Swift - Share project rao vặt bất động sảniOS Swift - Share project rao vặt bất động sảniOS Swift - Share project rao vặt bất động sảniOS Swift - Share project rao vặt bất động sản

iOS Swift - Share project rao vặt bất động sảniOS Swift - Share project rao vặt bất động sảniOS Swift - Share project rao vặt bất động sảniOS Swift - Share project rao vặt bất động sản

Tải về:

Các bạn có thể clone/fork project về tại đây: https://github.com/sethsandaru/ios-bds-real-estate

Lưu ý:

Khi đã clone về, cần mở terminal, cd vào trong thư mục BDSNhom6 và chạy lệnh “pod install” (Nếu chưa cài cocoapod hãy tham khảo tại đây)

Mở project bằng file .xcworkspace

Cấu hình URL API tại file Common.swift

Google Service để sử dụng Firebase các bạn cứ tự nhiên sử dụng của mình hoặc thay đổi nếu cần thiết.

Ngoài ra nếu bạn nào xài XCode 8, khi build bị lỗi của thằng Imageslideshow thì các bạn cứ vào các file lỗi, xóa mấy dòng lỗi đi nhé, xong build lại là dc thôi 😀

Lời kết

Với project này, mình đạt được số điểm tuyệt đối.

Còn rất nhiều chức năng mình muốn thêm vào, nhưng thời gian có hạn nên mình không triển khai được thêm nữa. Biết đâu mốt rảnh lại có thể thêm vào tiếp 😀

Chúc các bạn tìm hiểu Swift vui vẻ nhé!

Happy new year 2018!

facebook
Seth Phát

Seth Phát

Mình là Phát - biệt danh Seth Phát. Hiện đang là một Sr. Full-Stack Engineer. Mình là một người yêu thích và đam mê lập trình và hiện tại đang theo về phần Web là chủ yếu. Mạnh Back-end và khá Front-end, vẫn đang theo đều cả 2 :v. Còn gì bằng khi được làm những thứ mà mình yêu thích, đam mê ;)

Bình luận qua Facebook