Python dalam pengembangan Mobile



Bukan rahasia lagi bahwa ruang lingkup Python cukup luas: dari teknologi berbasis web, industri game, dan berakhir dengan proyek NASA . Python bekerja hampir di mana-mana: dari komputer genggam dan telepon pintar hingga server jaringan dan pada hampir semua platform terkenal seperti Windows, Linux / UNIX, macOS, Palm OS, Raspberry PI dan sebagainya. Berkat kerangka kerja Kivy, pada tahun 2011 Python juga menguasai platform seluler dalam hal mengembangkan aplikasi untuk iOS dan Android , dan pada 2015, menggunakan perpustakaan KivyMD, Python belajar menggunakan Material Design .

Perpustakaan KivyMD adalah kumpulan widget dalam gaya Desain Bahan , untuk digunakan dalam kerangka kerja lintas platform Kivy . Dalam artikel saya sebelumnya KivyMD - hidup terus berjalan , yang dirilis setahun yang lalu, saya sudah berbicara tentang percabangan perpustakaan ini, tetapi dalam masalah dan surat saya sering menerima pemberitahuan bahwa fitur yang dinyatakan dalam percabangan tidak tersedia saat memasang KivyMD dari PyPi . Dan ini benar-benar terjadi, karena PyPi berisi versi lama perpustakaan empat tahun lalu dari repositori GitLab , yang tidak lagi didukung oleh penulis dan, karena kami tidak ingin menggunakan nama baru untuk garpu kami, seperti garpu KivyMD, dan memuat paket ke PyPi dengan ini nama, diputuskan untuk menulis kepada penulis KivyMD Andrés Rodríguez (@mixedCase_) dan memintanya untuk menghapus paketnya. Setelah beberapa negosiasi panjang, Andre memberi kami undangan ke Paket Python , asalkan ia akan tetap menjadi co-penulis perpustakaan. Jadi sekarang repositori perpustakaan resmi ada di sini , dan pembaruan terbaru kami tersedia di PyPi .

Jadi, perubahan apa yang terjadi di perpustakaan setahun kemudian? Terima kasih kepada orang-orang yang menggunakan KivyMD dalam proyek mereka, kami telah menghilangkan banyak kesalahan. Ada 81 pertanyaan tertutup dalam repositori. Ini jika Anda tidak mempertimbangkan bahwa bagian terbesar dari masalah diselesaikan dalam dukungan pengguna obrolan obrolan online . Ada bagian bahasa Rusia dan bahasa Inggris di dalamnya. Tidak semua spesifikasi Desain Bahan saat ini diterapkan, karena hampir dua orang bekerja di perpustakaan di waktu luang mereka. Apa yang telah diterapkan dan apa yang ingin saya implementasikan dapat dilihat dalam daftar ini . Ini masih jauh dari selesai, tetapi Anda dapat menambahkannya, karena akses pengeditan terbuka untuk semua orang. Berikut beberapa widget baru:

Tip alat


Tip desain bahan

contoh kode
from kivy.lang import Builder from kivy.factory import Factory from kivymd.app import MDApp Builder.load_string(''' #:import random random #:import hex_colormap kivy.utils.hex_colormap #:import get_color_from_hex kivy.utils.get_color_from_hex #:import md_icons kivymd.icon_definitions.md_icons #:set ICONS list(md_icons.keys()) <IconButtonTooltips@MDIconButton+MDTooltip> <ExampleTooltips@BoxLayout> orientation: 'vertical' MDToolbar: title: "Example Tooltips" md_bg_color: get_color_from_hex(hex_colormap["crimson"]) elevation: 10 left_action_items: [['dots-vertical', lambda x: None]] tooltip_text: "MDToolbar" Screen: BoxLayout: size_hint: None, None size: self.minimum_size padding: "10dp" spacing: "10dp" pos_hint: {'center_x': .5, "center_y": .9} IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" IconButtonTooltips: icon: random.choice(ICONS) tooltip_text: "MDIconButton" ''') class Test(MDApp): def build(self): return Factory.ExampleTooltips() Test().run() 



* Contoh Mac OS



Bilah aplikasi bawah


Bilah Bawah Aplikasi Material Design

Di sebelah kiri adalah contoh bagaimana Bottom App Bar bekerja dari aplikasi demo Flutter , di sebelah kanan adalah demonstrasi pustaka KivyMD Bottom App Bar .

contoh kode
 from kivy.factory import Factory from kivymd.app import MDApp from kivy.lang import Builder Builder.load_string( """ <BottomAppBar@Screen> BoxLayout: spacing: dp(10) orientation: 'vertical' MDToolbar: title: "Title" md_bg_color: app.theme_cls.primary_color left_action_items: [['menu', lambda x: x]] Widget: MDBottomAppBar MDToolbar: title: "Title" icon: "git" type: "bottom" left_action_items: [["menu", lambda x: x]] """ ) class BottomAppBarTest(MDApp): def build(self): return Factory.BottomAppBar() BottomAppBarTest().run() 


Backdropr


Desain Bahan Backdropr

Di sebelah kiri adalah contoh bagaimana Backdropr bekerja dari aplikasi demo Flutter , di sebelah kanan adalah demonstrasi dari Backdropr dari perpustakaan KivyMD .

Kami juga menambahkan bagian Studi ke perpustakaan, yang akan menyelenggarakan aplikasi demo seperti Shrine , Basil, dan lainnya. Untuk saat ini, Anda dapat melihat seperti apa aplikasi Shrine :


Dan ini adalah hal yang sama, tetapi dari aplikasi Flutter :


Jadi KivyMD terlihat di perangkat Android . Di beberapa tempat, tentu saja, ada masalah kinerja, tetapi ini menyangkut, kemungkinan besar, Kivy sendiri. Misalnya, masih ada masalah dengan memulai perpustakaan "berat". Dalam video berikut, saya memberi contoh aplikasi menggunakan OpenCV sebagai backend ke kamera Android :


Dalam kasus khusus ini, tidak ada yang bisa dilakukan, karena pada awalnya, tidak hanya OpenCV dan NumPy yang dimuat, tetapi juga panggilan asli terjadi untuk menghubungkan semua ini. Namun, aplikasi seluler yang dirancang dengan baik di Kivy dan KivyMD dimulai dengan cukup cepat. Semua ini berlaku untuk platform seluler. Tidak ada masalah seperti itu di desktop dan KivyMD terlihat sangat cantik di sana:

OS Mac:


Windows:


Pada prinsipnya, tidak masalah OS mana yang akan bekerja, karena KivyMD , seperti Kivy, terlihat sama di mana-mana. Anda sendiri harus memutuskan jenis aplikasi yang akan dimiliki aplikasi Anda dan saya pikir ini hanya nilai tambah.

Kami memiliki banyak rencana, tetapi tidak cukup tangan. Misalnya, sementara tidak ada waktu untuk memperbaiki manajer file untuk sistem desktop, saya ingin memperkenalkan dukungan untuk widget iOS dan banyak lagi ... Namun, terlepas dari semua kekurangannya, jumlah unduhan dan minat pada perpustakaan bertambah setiap hari:


Bergabunglah dengan komunitas jika Anda menyukai Python seperti kami menyukainya!

Saluran Youtube
Berita KivyMD
Obrolan obrolan

Source: https://habr.com/ru/post/id479126/


All Articles