рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдХрд▓ рдХреЗ
рдкрд╛рдпрдерди рд▓реЗрдЦ
рдореЗрдВ , рдЬрд┐рд╕рдореЗрдВ
рдХреАрд╡реАрдПрдордбреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рдХрд┐рд╡реА рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдбрд┐рдЬрд╛рдЗрди-рд╢реИрд▓реА рд╡рд┐рдЧреЗрдЯреНрд╕ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдЧрдИ рдереА, рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ред рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬрд╛рджреБрдИ shamanism рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рдХреБрдЫ рдмрдиреА рд╣реБрдИ рд╣реИ рдФрд░ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИред рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ, рд╕рдм рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЬрд╛рджреВрдЧрд░ рдФрд░ рдЬрд╛рджреВрдЧрд░ рд╣реВрдВ ...

рдмреЗрд╢рдХ рд╡рд╣ рдХрд░ рд╕рдХрддрд╛ рдерд╛! рддреЛ, рдЖрдкрдиреЗ рдкрд╛рдпрдерди рдФрд░ рдХрд┐рд╡реА рдореЗрдВ рдЕрдкрдирд╛ рдХреЛрдб рд▓рд┐рдЦрд╛ред рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ? KivyMD рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐
рдЗрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЙрди рдЪрд░рдгреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдкреАрдХреЗ рдкреИрдХреЗрдЬ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗ:
- рдбрд╛рдЙрдирд▓реЛрдб XUbuntu 18.04
рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдмреЙрдХреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ XUbuntu рдЗрдореЗрдЬ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдИ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдмрдирд╛рдПрдВ
XUbuntu рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╢реБрд░реВ рдХрд░реЗрдВ, рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:
wget https://github.com/HeaTTheatR/KivyMD-data/raw/master/install-kivy-buildozer-dependencies.sh
chmod +x install-kivy-buildozer-dependencies.sh
./install-kivy-buildozer-dependencies.sh
рд╡рд╣ рд╕рдм рд╣реИ! рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреАрд╡реА рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдкреАрдХреЗ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╣реИ! рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ? рдЪрд▓реЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред рдЦрд╛рд▓реА main.py рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рд╣реЛрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ TestKivyMD рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдмрдирд╛рдПрдБ:

рдЗрд╕рдХреЗ рдмрд╛рдж, рдореЗрдирдлреНрд░реЗрдо рдлрд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдЯреЗрд╕реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓рд┐рдЦреЗрдВ рдЬреЛ рдХрд┐ рдХрд┐рд╡рдбреАрдПрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛:
from kivy.lang import Builder from kivymd.app import MDApp KV = """ Screen: MDToolbar: title: "My firt app" elevation: 10 md_bg_color: app.theme_cls.primary_color left_action_items: [["menu", lambda x: x]] pos_hint: {"top": 1} MDRaisedButton: text: "Hello World" pos_hint: {"center_x": .5, "center_y": .5} """ class HelloWorld(MDApp): def build(self): return Builder.load_string(KV) HelloWorld().run()
рд╕рд╣реЗрдЬреЗрдВ, рдореЗрдирдлреНрд░реЗрдо рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реЗрдВ рдФрд░ KivyMD рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
sudo pip3 install kivymd
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдЖрдк рд╣рдорд╛рд░реЗ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
python3 main.py
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЯреВрд▓рдмрд╛рд░ рдФрд░ рдПрдХ рдмрдЯрди "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдХреНрд░реАрди рд╣реЛрдЧрд╛:

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ buildozer.spec рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдореБрдЦреНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

рдпрджрд┐ рдЖрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ (рдпрджрд┐ рдЯрд░реНрдорд┐рдирд▓ рдмрдВрдж рдерд╛, рддреЛ TestKivyMD рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЦреЛрд▓реЗрдВ), рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВ:
buildozer init
рдпрд╣ рдХрдорд╛рдВрдб рдПрдХ рдбрд┐рдлреЙрд▓реНрдЯ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдЧреАред рдЗрд╕реЗ рдЦреЛрд▓реЗрдВ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
[app]
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝реЗрдВ, рдЗрд╕рдореЗрдВ рдЖрдк рдЖрдЗрдХрди рдХреЛ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдлреНрд▓реИрд╢ рдХрд░реЗрдВ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рд╡рд╣реА рдЫреЛрдбрд╝рд╛ рдЬреЛ рд╣рдореЗрдВ рдЕрдм рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдкреИрдХреЗрдЬ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
buildozer android debug
рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд░рд╕реЛрдИ рдореЗрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЙрдлреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реА рдмрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдмрд╛рдж рдХреА рд╕рднреА рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдореЗрдВ 10-20 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред
рдХреЙрдлреА рдирд╢реЗ рдореЗрдВ рд╣реИ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ:

рджреЗрдЦрд╛! рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рд╣реИ! рдЖрдкрдХреЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдкрд░ рдЗрд╕реЗ рдЧрд┐рд░рд╛рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ:

рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдЙрддрдирд╛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдпрд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред
рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭрд╕реЗ рднреА рдкреВрдЫрд╛:

рдХрд┐рд╡реА рд▓реИрдВрдЧреНрд╡реЗрдЬ рдорд╛рд░реНрдХрдЕрдк рд▓реИрдВрдЧреНрд╡реЗрдЬ рдкрд░ рди рддреЛ рд╕реНрдкрдВрджрди рдФрд░ рди рд╣реА рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХрд╛ рдХреЛрдИ рд▓рд╛рдн рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рд▓рд╛рдЗрд╡ рд▓реЗрдЖрдЙрдЯ рдФрд░ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдФрд░ рд╕реНрдерд┐рддрд┐ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП, рдпреВрдЖрдИ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдлрд╝реНрд▓рдЯрд░ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╡рд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдХреГрддрд┐ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдмреАрдорд╛рд░ рд╡реНрдпрдХреНрддрд┐ рд╣реА рдРрд╕рд╛ рд╕реЛрдЪ рд╕рдХрддрд╛ рдерд╛ред рдирд┐рд░рд╛рдзрд╛рд░ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдлрд╝реНрд▓рдЯрд░ рдХреЛрдб рдФрд░ рдХрд┐рд╡реА рдХреЛрдб рдХреЛ рдПрдХ рд╣реА рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░ рджреЗрдЦреЗрдВ ... рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

рдиреАрдЪреЗ рдореИрдВ
рдлрд╝реНрд▓рдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рд╕реЗ рдХреЛрдб рджреЗрддрд╛ рд╣реВрдВ
, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдореВрд▓ рдмрд╛рддреЗрдВ :
import 'package:flutter/widgets.dart'; main() => runApp( Directionality( textDirection: TextDirection.ltr, child: Container( color: Color(0xFFFFFFFF), child: App(), ), ), ); class App extends StatelessWidget { @override Widget build(BuildContext context) { return Center( child: GestureDetector(
рдФрд░ рдпрд╣рд╛рдБ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди Kivy рдФрд░ KivyMD рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
from kivy.lang import Builder from kivymd.app import MDApp KV = """ #:import get_color_from_hex kivy.utils.get_color_from_hex Screen: MDCard: MDLabel: value: 0 text: str(self.value) halign: "center" on_touch_down: self.value += 1 canvas.before: Color: rgba: get_color_from_hex("#4eaabe") Ellipse: pos: self.center[0] - dp(25), self.center[1] - dp(25) size: dp(50), dp(50) """ class HelloWorld(MDApp): def build(self): return Builder.load_string(KV) HelloWorld().run()
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдирд┐рд╖реНрдХрд░реНрд╖ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдФрд░ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ ...
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдерд╛ред рдореИрдВ "рдЖрдк Android рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛ рдерд╛" рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдЫреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдБред