Symbian OS

Giao diện người dùng

Symbian đã có bộ công cụ đồ họa riêng kể từ khi thành lập, được gọi là  AVKON (trước đây gọi là Series 60). S60 được thiết kế để được thao tác bằng phép ẩn dụ giao diện giống như bàn phím, chẳng hạn như bàn phím điện thoại tăng cường 15 phím hoặc bàn phím mini QWERTY. Phần mềm dựa trên AVKON tương thích nhị phân với các phiên bản Symbian lên đến và bao gồm cả Symbian^3.
Symbian^3 bao gồm Qt framework,  hiện là bộ công cụ giao diện người dùng được đề xuất cho các ứng dụng mới. Qt cũng có thể được cài đặt trên các thiết bị Symbian cũ.
Symbian^4 đã được lên kế hoạch để giới thiệu khung thư viện GUI mới được thiết kế dành riêng cho giao diện cảm ứng, được gọi là  "UI Extensions for Mobile" hay UIEMO (tên nội bộ là "Orbit"), được xây dựng trên Qt Widget; bản xem trước đã được phát hành vào tháng 1/2010, tuy nhiên vào tháng 10/2010, Nokia đã thông báo rằng Orbit/UIEMO đã bị hủy bỏ.
Nokia hiện khuyên các nhà phát triển nên sử dụng  Qt Quick với QML, giao diện người dùng và kịch bản khai báo cấp cao mới để tạo giao diện màn hình cảm ứng trực quan phong phú cho phép phát triển cho cả Symbian và MeeGo; nó sẽ được gửi đến các thiết bị Symbian ^ 3 hiện tại dưới dạng cập nhật Qt. Khi nhiều ứng dụng dần dần có giao diện người dùng được làm lại trong Qt, khung S60 kế thừa (AVKON) sẽ không còn được sử dụng và không còn được bao gồm với các thiết bị mới tại một số điểm, do đó phá vỡ khả năng tương thích nhị phân với các ứng dụng S60 cũ hơn.

Phát triển ứng dụng

Từ 2010, Symbian chuyển sang sử dụng C ++ tiêu chuẩn với Qt làm SDK chính, có thể được sử dụng với Qt Creator hay Carbide.c++. Qt hỗ trợ các phiên bản Symbian/S60 3rd (bắt đầu với Feature Pack 1, a.k.a. S60 3.1) và Symbian/S60 5th Edition (a.k.a. S60 5.01b), cũng như nền tảng Symbian mới. Nó cũng hỗ trợ Maemo và MeeGo, Windows, Linux và Mac OS X.
Phát triển ứng dụng thay thế có thể được thực hiện bằng Python (xem Python for S60), Adobe Flash Lite hay Java ME.
Symbian OS trước đây đã sử dụng phiên bản C ++ dành riêng cho Symbian, với CodeWarrior và sau này là Carbide.c++ IDE, làm môi trường phát triển ứng dụng gốc..
Web Run time (WRT) là một framework ứng dụng di động cho phép tạo widget trên nền tảng S60; nó là một phần mở rộng cho trình duyệt dựa trên S60 WebKit cho phép khởi chạy nhiều phiên bản trình duyệt dưới dạng các ứng dụng JavaScript riêng biệt.

Qt

Kể từ năm 2010, SDK cho Symbian là C ++ tiêu chuẩn, sử dụng Qt. Nó có thể được sử dụng với Qt Creator hoặc carbide (IDE cũ hơn được sử dụng trước đây để phát triển Symbian). Trình giả lập điện thoại cho phép thử nghiệm các ứng dụng Qt. Các ứng dụng được biên dịch cho trình giả lập được biên dịch thành mã gốc cho nền tảng phát triển, thay vì phải được mô phỏng. Phát triển ứng dụng có thể sử dụng C++ hoặc QML.

Symbian C++

Vì hệ điều hành Symbian được viết bằng C++ bằng mã chuẩn của Symbian Software, nên có thể phát triển bằng Symbian C++, mặc dù đây không phải là một triển khai tiêu chuẩn. Trước khi phát hành SDK Qt, đây là môi trường phát triển tiêu chuẩn. Có nhiều nền tảng dựa trên Symbian OS đã cung cấp software development kit (SDK) cho các nhà phát triển ứng dụng muốn nhắm mục tiêu các thiết bị Symbian OS, những nền tảng chính là UIQ và S60. Các sản phẩm điện thoại cá nhân hoặc gia đình thường có các phần mở rộng SDK hoặc SDK có thể tải xuống từ trang web của nhà sản xuất.
SDK chứa tài liệu, file tiêu đề và file thư viện cần thiết để xây dựng phần mềm Symbian OS, và một trình giả lập dựa trên Windows("WINS"). cho đến Symbian OS 8, SDK cũng bao gồm một phiên bản của trình biên dịch GNU Compiler Collection (GCC) (một trình biên dịch đa nền tảng) để xây dựng phần mềm để hoạt động trên thiết bị.
Symbian OS 9 và nền tảng Symbian sử dụng giao diện nhị phân ứng dụng (ABI) mới và cần một trình biên dịch khác. Một sự lựa chọn các trình biên dịch có sẵn bao gồm một phiên bản GCC mới hơn (xem các liên kết bên ngoài bên dưới).
Thật không may, lập trình Symbian C ++ có một đường cong học tập dốc, vì Symbian C ++ yêu cầu sử dụng các kỹ thuật đặc biệt như mô tả, các đối tượng hoạt động và ngăn xếp dọn dẹp. Điều này có thể làm cho các chương trình thậm chí tương đối đơn giản ban đầu khó thực hiện hơn trong các môi trường khác. Có thể các kỹ thuật, được phát triển cho phần cứng và trình biên dịch di động bị hạn chế hơn nhiều vào những năm 1990, đã gây ra sự phức tạp thêm trong mã nguồn vì các lập trình viên được yêu cầu tập trung vào các chi tiết cấp thấp thay vì các tính năng cụ thể hơn cho ứng dụng. Kể từ năm 2010, những vấn đề này không còn xảy ra khi sử dụng C++ tiêu chuẩn, với SDK Qt.
Lập trình Symbian C ++ thường được thực hiện với IDE. Đối với các phiên bản trước của Symbian OS, IDE thương mại CodeWarrior cho Symbian OS được ưa chuộng. Các công cụ CodeWarrior đã được thay thế trong năm 2006 bởi Carbide.c++, một IDE dựa trên Eclipseđược phát triển bởi Nokia. Carbide.c++ được cung cấp trong bốn phiên bản khác nhau: Express, Developer, Professional, và OEM, với mức độ tăng khả năng. Phần mềm đầy đủ tính năng có thể được tạo và phát hành với phiên bản Express, miễn phí. Các tính năng như thiết kế giao diện người dùng, gỡ lỗi sự cố, vv có sẵn trong các phiên bản khác, tính phí. Microsoft Visual Studio 2003 và 2005 cũng được hỗ trợ thông qua plugin Carbide.vs.

Ngôn ngữ khác

Các ứng dụng của Symbian có thể được lập trình bằng Python, Java ME, Flash Lite, Ruby, .NET, Web Runtime (WRT) Widgets và Standard C/C++.
Lập trình viên Visual Basic có thể dùng NS Basic để phát triển ứng dụng cho các thiết bị S60 3rd Edition và UIQ 3.
Trước đây, việc phát triển Visual Basic, Visual Basic .NET, và C# Symbian có thể thông qua AppForge Crossfire, một plugin cho Microsoft Visual Studio. ngày 13 tháng 3 năm 2007, AppForge ngừng hoạt động; Oracle đã mua tài sản trí tuệ, nhưng tuyên bố rằng họ không có kế hoạch bán hoặc cung cấp hỗ trợ cho các sản phẩm cũ của AppForge. Net60, một framework .NET nhỏ gọn cho Symbian, ược phát triển bởi redFIVElabs, được bán dưới dạng sản phẩm thương mại. Với Net60, mã nguồn VB.NET và C# (và các ngôn ngữ khác) được biên dịch thành ngôn ngữ trung gian (IL)được thực thi trong Symbian OS bằng một trình biên dịch just-in-time. (As of Jan 18th, 2010, RedFiveLabs đã ngừng phát triển Net60 với thông báo này trên trang đích của họ: "Ở giai đoạn này, chúng tôi đang theo đuổi một số tùy chọn bán IP để Net60 có thể tiếp tục có tương lai".)
Cũng có một phiên bản của Borland IDE cho Symbian OS. Cũng có thể phát triển hệ điều hành Symbian trên Linux và Mac OS X bằng cách sử dụng các công cụ và phương pháp do cộng đồng phát triển, một phần được kích hoạt bởi Symbian phát hành mã nguồn cho các công cụ then chốt. Một plugin cho phép phát triển các ứng dụng hệ điều hành Symbian trong Xcode IDE cho Mac OS X đã có sẵn.
Các ứng dụng Java ME cho hệ điều hành Symbian được phát triển bằng các kỹ thuật và công cụ tiêu chuẩn như Sun Java Wireless Toolkit (trước đây là J2ME Wireless Toolkit). Chúng được đóng gói dưới dạng file JAR (và có thể là JAD). Cả hai ứng dụng CLDC và CDC đều có thể được tạo bằng NetBeans. Các công cụ khác bao gồm SuperWaba, có thể được sử dụng để xây dựng các chương trình Symbian 7.0 và 7.x bằng Java.
Điện thoại Nokia S60 cũng có thể chạy các tập lệnh Python khi trình thông dịch Python for S60 được cài đặt, với API được tạo tùy chỉnh cho phép hỗ trợ Bluetooth và như vậy. Ngoài ra còn có một bảng điều khiển tương tác để cho phép người dùng viết các tập lệnh Python trực tiếp từ điện thoại.

Triển khai

Sau khi được phát triển, các ứng dụng Symbian cần tìm cách đến điện thoại di động của khách hàng. Chúng được đóng gói trong các file SIS có thể được cài đặt qua mạng, qua kết nối PC, Bluetooth hoặc trên thẻ nhớ. Một cách khác là hợp tác với nhà sản xuất điện thoại và có phần mềm đi kèm trên chính điện thoại. Các ứng dụng phải được xác minh qua Symbian Signed cho Symbian OS 9.x để sử dụng các khả năng nhất định (khả năng hệ thống, khả năng hạn chế và khả năng của nhà sản xuất thiết bị). Các ứng dụng hiện có thể được xác minh miễn phí.

Quá trình phát triển

Symbian được hỗ trợ nhiều nhất bởi hãng điện thoại Nokia. Hãng này đã tích hợp Symbian vào hầu hết điện thoại cao cấp của mình. Trong khoảng thời gian từ 2003-2007, Nokia và Symbian hết sức thành công với doanh số cao và Symbia được coi là biểu tượng cao cấp. Các điện thoại tiêu biểu phải kể đến Nokia 6600 và Nokia 7610. Ngoài Nokia, Sony Ericsson cũng có những model dùng Symbian rất được chú ý như P900, P910i. Các hãng khác như Samsung, Motorola cũng có một vài model sử dụng Symbian nhưng không thực sự thành công lắm.

Ưu và khuyết điểm

Ở thời kỳ hoàng kim thì Symbian được đánh giá là thân thiện, dễ sử dụng, thông minh, dễ tùy biến, nhiều ứng dụng... Tuy nhiên càng về sau, khi các hệ điều hành iOS của Apple và Android của Google phổ biến hơn thì Symbian đánh mất dần các lợi thế. Nó trở thành một hệ điều hành lạc hậu, trì trệ, kém chuyên nghiệp...
Điểm yếu nhất của Symbian, ngay cả khi nó đang thịnh hành, là sự không tương thích giữa các phiên bản(phiên bản ra sau mới hơn lại không chạy được ứng dụng cho phiên bản trước), dẫn đến khó khăn cho các nhà phát triển phần mềm của hãng thứ 3, từ đó cũng khiến phần mềm dành cho Symbian tuy nhiều mà ít, vì cùng là Symbian nhưng lại không chạy được cùng một phần mềm. Chính vì vậy, các thiết bị mới ra của Symbian cũng được đón nhận dè dặt hơn, do người tiêu dùng lo ngại không kiếm được những ứng dụng yêu thích mà họ đang dùng trên thiết bị Symbian cũ. Đối với giới chuyên môn thì đó là cách phát triển nghiệp dư, thiếu tầm nhìn... và cũng là một trong những nguyên nhân hạ gục Symbian, khi các hệ điều hành cạnh tranh có tính tương thích ngược rất tốt.
Một điểm nữa, là hầu hết các thiết bị chạy Symbian đều gắn với phiên bản hệ điều hành của nó vĩnh viễn, người dùng không thể nâng cấp hệ điều hành trên thiết bị cũ của mình lên phiên bản mới, việc đó càng khiến Symbian trở nên phân mảnh, thiếu thân thiện và bó buộc hơn. Những thiết bị Symbian cuối cùng đã khắc phục được nhược điểm đó nhưng lúc này Android và Ios đã trở nên quá phổ biến.
Nhiều chuyên gia cho rằng Nokia và Symbian đã bỏ lỡ cơ hội của mình, khi không xây dựng một hệ sinh thái thực sự vững chắc xung quanh Symbian khi nó còn thống trị. Các thiết bị càng ra đời sau càng khó kiếm ứng dụng tiện ích do sự thay đổi và cải tổ trong lòng Symbian. Vô số ứng dụng cũ được viết trong thời kỳ hoàng kim không thể sử dụng được, và vì vậy chúng chẳng giúp ích gì cho các thiết bị mới. Mọi chuyện có lẽ sẽ khác nếu tất cả các thiết bị Symbian đều tương thích với nhau.

Các điện thoại dùng Symbian

Danh sách: