There is buổi nói chuyện của chàng trai đến từ bu.mp trên Scala Ngày 2011.
Disclaimer: Trong khi họ nói chuyện rất nhiều về vấn đề mà họ đã phải đối mặt, những kinh nghiệm tổng thể chắc chắn tích cực. Hơn nữa, đây là vấn đề của một nhóm cụ thể và họ là những người nhỏ tuổi.
Tóm tắt:
- Sử dụng bộ nhớ. Đóng cửa ăn bộ nhớ. Scala đã đóng cửa khắp nơi. Trong khi nó không phải là một vấn đề lớn tương đối (bộ nhớ overheads) trên máy tính bảng của bạn, nó cần được xem xét khi bạn phát triển cho điện thoại di động. Bạn có thể hỏi: cách họ giải quyết nó? Họ đã có một cuộc săn lùng cho một vòng chặt chẽ và sau đó tối ưu hóa chúng (viết lại trong scala/java không giới hạn). (26 phút)
Tôi nghĩ Java 8 với hỗ trợ đóng cửa tự nhiên sẽ giảm bớt vấn đề này Phiên bản scala tiếp theo sẽ nhắm mục tiêu nền tảng java 8 với chương trình phụ trợ mới và nhằm mục đích hiệu suất tốt hơn nhiều. Thảo luận về lộ trình is here.
- Trình biên dịch chậm hơn (như Michal Galpin cho biết họ có 15 giây để biên dịch mã Java, khoảng một phút cho Scala và về đơn đặt hàng nhiều hơn cho Proguard, nhưng lưu ý rằng nó phụ thuộc vào cơ sở mã và máy móc của bạn, nhưng tôi nghi ngờ tỷ lệ sẽ giống nhau). Nó đặc biệt khó chịu khi bạn tạo giao diện người dùng, như di chuyển pixel, nút, v.v. và muốn xem nhanh kết quả. (7 phút)
- Có một số vấn đề với các lớp bên trong khá phổ biến đối với Android (xem chi tiết 23:00).
- Có hiếm lỗi trong scalac (scala compiler) trong scala-java-collections interop. Các vấn đề đã được giải quyết bằng cách viết những điều này một cách rõ ràng (tôi nghi ngờ rằng không phải là rất nhiều boilerplate ở tất cả).
Trong khi ông nói về IDE quá, tôi không nghĩ rằng đó là một vấn đề (xem this bưu điện, về Scala môi trường). Những người làm Scala IDE và IntelliJ làm tốt công việc của họ và hỗ trợ IDE ngày càng tốt hơn.
Để kiểm tra đơn vị người ta có thể sử dụng RoboSpecs (cho phép bạn chạy các kiểm tra đơn vị bên trong JVM, không phải bên trong trình mô phỏng), nhanh hơn.
Một trong những vấn đề lớn nhất mà tôi gặp phải là limitations của định dạng dex (không quá 65536 tham chiếu phương thức cho mỗi tệp dex). Thư viện Scala chỉ đơn giản là không phù hợp với giới hạn, do đó bạn phải giải quyết vấn đề đó bằng cách:
- bằng cách sử dụng Proguard sẽ cắt chất béo khỏi lib lib. Nhưng nó thực sự là chậm trên máy tính xách tay của tôi, và chỉ lãng phí thời gian trong giai đoạn phát triển (nhưng rất hữu ích khi bạn phát hành ứng dụng của mình lên Google Play)
- sử dụng predexed library. Điều xấu là dự án này là một chút bị bỏ rơi và chỉ chứa phiên bản 2.9.0-1.
- preinstalling scala trên điện thoại của bạn
Một số kẻ tuyên bố rằng có những vấn đề với IDE, nhưng mọi thứ bị thay đổi nhanh chóng: phiên bản hiện tại của IDEA IntelliJ 12 không chỉ có một sự hỗ trợ tốt của Scala như một plugin, nhưng cũng chứa UI Designer cho Android. Hơn nữa, bạn có thể sử dụng Eclipse có hỗ trợ từ cả hai bên Android (bởi Google) và Scala (by Typesafe). Android Studio (IDE mới dựa trên IDEA đã được công bố trên Google IO '13 và được phát triển bởi Google) hỗ trợ plugin IDEA do đó Scala.
Nguồn
2012-04-27 21:35:13
http://www.assembla.com/wiki/show/scala-ide/Developing_for_Android –