-
Create an github account if you don't have.
-
Create a repository, you could also create it as private.
-
Goto your project directory (where main.py exists) and create a file in
.github/workflows/build.yml(Create the folders if not already existed).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from kivy import platform | |
| from jnius import autoclass | |
| if platform == "android": | |
| DataSnapshot = autoclass('com.google.firebase.database.DataSnapshot') | |
| HashMap = autoclass('java.util.HashMap') | |
| ArrayList = autoclass('java.util.ArrayList') | |
| Boolean = autoclass('java.lang.Boolean') | |
| String = autoclass('java.lang.String') | |
| Integer = autoclass('java.lang.Integer') | |
| Double = autoclass('java.lang.Double') |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from kivy.animation import Animation | |
| from kivy.app import App | |
| from kivy.lang import Builder | |
| from kivy.properties import AliasProperty, ColorProperty, NumericProperty | |
| from kivy.uix.effectwidget import AdvancedEffectBase, EffectWidget | |
| class TangentGradient(AdvancedEffectBase): | |
| def __init__(self, *args, **kwargs): | |
| super().__init__(*args, **kwargs) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from kivy.uix.recycleview import RecycleView | |
| from kivy.clock import Clock | |
| from kivy.properties import OptionProperty, BooleanProperty, ObjectProperty, NumericProperty, ListProperty | |
| from kivy.animation import Animation | |
| from kivymd.uix.behaviors import StencilBehavior, SpecificBackgroundColorBehavior | |
| from kivymd.uix.boxlayout import MDBoxLayout | |
| from kivy.uix.widget import Widget | |
| from Components.effects import LowerScrollEffect, LowerDampedScrollEffect |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from kivy.event import EventDispatcher | |
| from kivy.metrics import dp | |
| from kivy.properties import ListProperty, StringProperty | |
| from kivymd.uix.behaviors import FakeRectangularElevationBehavior | |
| from kivymd.uix.card import MDCard | |
| from kivy.uix.behaviors import ToggleButtonBehavior | |
| from kivy.uix.gridlayout import GridLayout | |
| from kivy.uix.boxlayout import BoxLayout | |
| from kivy.uix.label import Label |
Many people state that kivy is slow. While this may be true it is mostly due to that python is slow to run on android devices.Thus it is in the programmer's hands to properly optimize their code so as to create a performant application.
Most of the lag on android devices runing kivy apps arise due to widget creation. Widget creation remains the slowest step in a kivy app. Here are some of the methods that I follow to optimize my apps and ensure I can hit 60fps even on old devices
Source: AndroidDev
To get call history programmatically first add read contact permission in Manifest file:
<uses-permission android:name="android.permission.READ_CONTACTS" />
Create xml file. Add the below code in xml file:
<Linearlayout android:layout_height="fill_parent"
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def luhn_checksum(card_number): | |
| def digits_of(n): | |
| return [int(d) for d in str(n)] | |
| digits = digits_of(card_number) | |
| odd_digits = digits[-1::-2] | |
| even_digits = digits[-2::-2] | |
| checksum = 0 | |
| checksum += sum(odd_digits) | |
| for d in even_digits: | |
| checksum += sum(digits_of(d*2)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| BoxLayout: | |
| orientation: 'vertical' | |
| Label: | |
| size_hint_y: None | |
| height: '50dp' | |
| id: calc | |
| text: '' | |
| GridLayout: | |
| cols: 4 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [ | |
| { | |
| "Country": { | |
| "Name": "Afghanistan", | |
| "ISOCode": "AF", | |
| "ISONumeric": "4" | |
| }, | |
| "Ambulance": { | |
| "All": [ | |
| "112" |
NewerOlder