{"id":15136121,"url":"https://github.com/ogliarinatan/applications-with-kivy-in-python","last_synced_at":"2026-01-19T07:32:44.764Z","repository":{"id":210225615,"uuid":"726050675","full_name":"OgliariNatan/applications-with-kivy-in-python","owner":"OgliariNatan","description":"Repositório para o curso da framework kivy do python","archived":false,"fork":false,"pushed_at":"2023-12-29T12:05:54.000Z","size":53087,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-12T08:34:24.519Z","etag":null,"topics":["kvlang","pycharm-ide","python","python-kivy-library"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OgliariNatan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-01T12:35:26.000Z","updated_at":"2023-12-07T12:32:49.000Z","dependencies_parsed_at":"2024-09-21T10:11:34.238Z","dependency_job_id":null,"html_url":"https://github.com/OgliariNatan/applications-with-kivy-in-python","commit_stats":null,"previous_names":["ogliarinatan/applications-with-kivy-in-python"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OgliariNatan%2Fapplications-with-kivy-in-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OgliariNatan%2Fapplications-with-kivy-in-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OgliariNatan%2Fapplications-with-kivy-in-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OgliariNatan%2Fapplications-with-kivy-in-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OgliariNatan","download_url":"https://codeload.github.com/OgliariNatan/applications-with-kivy-in-python/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247425458,"owners_count":20936951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kvlang","pycharm-ide","python","python-kivy-library"],"created_at":"2024-09-26T06:04:11.531Z","updated_at":"2026-01-19T07:32:44.758Z","avatar_url":"https://github.com/OgliariNatan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# applications-with-kivy-in-python\n- Repositório para o curso da framework kivy do python\n- Desenvolvimento de Apps Comerciais com Python e Kivy para Android, iOS,\n\n## para uso\n* intale as dependências dos requerimentos\n```shell\npip install -r requirement.txt\n```\n- [x] [Manual em português do kivy](kivy-pt_br-excript.pdf)\n\n### Recursos interessante (Regras)\n#### ```property```\n- Nunca se acessa diretamente as variáveis.\n- uso do ```property(fget= , fset= )``` \u003c/br\u003e\n- - ```var = property(fget=_get_var, fset=_set_var)```\n- - o uso do __ ante da variável, indica as compilador que ela não pode ser acessada diretamente. \u003c/br\u003e\nExemplo:\n```python\nclass Retangulo:\n\n    def __init__(self, largura, altura):\n        self._largura = 0 #Não pode acessar diretamente, utilizar os metodos acessores\n        self._altura = 0 #Não pode acessar diretamente, utilizar os metodos acessores\n        self._set_altura(altura) #metodo acessor\n        self._set_largura(largura) #metodo acessor\n\n    def _set_altura(self, num):\n        if(not(isinstance(num, int) and (num \u003e 0))):\n            raise ValueError(\"Altura é inválida: {}\".format(num))\n        self._altura = num\n        self.__var = 456\n\n    def _set_largura(self, num):\n        if(not(isinstance(num, int) and (num \u003e 0))):\n            raise ValueError(\"Largura é inválida: {}\".format(num))\n        self._largura = num\n    def _get_area(self): #metodo de solicitação\n        return self._largura * self._altura\n    def _get_altura(self): #metodo de solicitação\n        return self._altura\n    def _get_largura(self): #metodo de solicitação\n        return self._largura\n\n\n    altura = property(fget=_get_altura,  fset=_set_altura)\n    largura = property(fget=_get_largura, fset=_set_largura)\n    area = property(fget=_get_area)\n\nr = Retangulo(altura=10, largura=5)\nr.largura = 50\nr.altura = 10\nprint(r.altura)\nprint(r.largura)\nprint('valor de area')\nprint(r.area)\n```\n\n\n#### ```@property com @metodo.setter```\nExemplo\n```Python\nclass Retangulo:\n\n    def __init__(self, largura, altura):\n        self._largura = 0 #Não pode acessar diretamente, utilizar os metodos acessores\n        self._altura = 0 #Não pode acessar diretamente, utilizar os metodos acessores\n        self.altura = altura #metodo acessor\n        self.largura = largura #metodo acessor\n\n    @property\n    def altura(self): #metodo de solicitação\n        return self._altura\n    @altura.setter\n    def altura(self, num):\n        if(not(isinstance(num, int) and (num \u003e 0))):\n            raise ValueError(\"Altura é inválida: {}\".format(num))\n        self._altura = num\n\n\n    @property\n    def largura(self): #metodo de solicitação\n        return self._largura\n    @largura.setter\n    def largura(self, num):\n        if(not(isinstance(num, int) and (num \u003e 0))):\n            raise ValueError(\"Largura é inválida: {}\".format(num))\n        self._largura = num\n    @property\n    def area(self): #metodo de solicitação\n        return self._largura * self._altura\n\nr = Retangulo(altura=5, largura=5)\nr.largura = 5\nr.altura = 10\n#r.area = 100 #Levanta um erro, pois é apenas captura de valor em vez de setar valor.\nprint(\"valor da altura: \", r.altura)\nprint('valor da largura: ', r.largura)\nprint('valor de area: ', r.area)\n```\n## Classe em Python\n- As classe são utilizadas para criar objetos e em __Python__ as mesmas também são objetos.\n- Cuidado com as nomenclatura:\n- [x] MEMBROS DE CLASSE\n- [x] MEMBROS DE INSTÂNCIAS\n- Aprenderemos a operar um membro de classe.\n\n* Ao operar as classes, altera-se todos os membros juntos, se alterar apenas o membro será alterado apenas no referido.\n* Na busca por atributos o __Python__, irá busca primeiro na membro atributo, caso não encontre ele busca na classe.\n\n\n- Exemplo de Método de classe:\n```python\nclass A:\n  #Todas as instancias possuem acesso\n  @classmethod\n  def fun(cls, arg1, arg2, ...):\n    pass #Informa que não irei implementar por enquanto\n\n```\n## Método Estáticos\n- Não possui relação direta com a classe, porém são membro de classe. sem a declaração de parâmetros \"cls\" ou \"self\"\n## Posicionamento\n- A biblioteca __Kivy__ opera no primeiro plano cartesiano.\n- o Posicionamento se baseia-se no ângulo inferior esquerdo, para início do posicionamento.\n- É de responsabilidade do programador posicionar as janelas, caso contrario, não será exibido na tela\n- Sistemas de medidas responsivo.\n- Definir de forma automática com consequência a resolução das telas(pixel).\n- dp, independa do tamanho da tela é proporcional a largura de pixel pela densidade da tela.\n![dp](figure/dp.png)\n\n## Tela com algumas funcionalidades da biblioteca __kivy__\n- A aplicação permite apenas um widget's principal, porém, cria-se leiautes para várias janelas.\n```python\nfrom kivy.app import App\nfrom kivy.uix.label import Label          #Escrita de texto\nfrom kivy.uix.button import Button        #Botão\nfrom kivy.uix.textinput import TextInput  #Entrada de texto\n\n```\n\n\n\n\n# Linguagem __Kivy__\n\n```python\n\u003cClassName\u003e: #É o top da janela, (Haverá uma única janela, pois os dispositivos moveis usam apenas uma janela)\n  LayoutType: #Gerenciador de Layout\n    WidgetType: # Widget (Terá vários)\n      pos: 10, 10\n      size: .5, .5\n\n  LayoutType2: #Gerenciador de Layout generico\n      font_size: 70\n      center_x: root.width / 4\n      top: root.top - 5\n      text: \"0\"\n\n```\n## Propriedades Percentuais\n\n![Propriedade de posição](figure/prp.png)\n\n\n## Para testes de tela em diversas telas de aparelhos movéis :D\n\n```sheel\nactivate k35 #Ativa o ambiente virtual do python 3.5\n\n#Vá no diretório da aplicação\ndir \"caminho_path_app\"\n\npython nome_app.py -m screen #Lista os dispositivos suportados\n\npyhton nome_app.py -m screen:nome_dispositivo\n```\n\n### ipython\n- Roda em linha de comando e interage em diversas outros scripty\n\n```shell\ncd dir_app\n\njupyter notebook #Abre o jupyter no navegador padrão\n\n```\n## kivy\n\n\n- MinhaApp - minha.kv\n- ProgramaApp - programa.kv\n- Prog - prog.kv\n\n\n## Palavras reservadas em Kivy\n\n![Palavras Reservadas](figure/reservadas.png)\n\n\n\n```kivy\n\u003cClass\u003e:\n    Label:\n        text: str(self.opacity) # Aponta para\n\n\n\n\u003cClasse\u003e:\n    Label:\n      #root = \u003cClasse\u003e Aponta para a classe implementada pelo pyhton\n      text:root.orientation\n\n\n###############################\n\u003cClass\u003e:\n    Label:\n        app.name\n```\n\n## Widget tools ![wd](figure/wid.png)\n\n\n## Passos para executar em dispositivos moveis\n![Passos para executar em disp. movel](figure/passos.png)\n\n\n## Nunca é demais lelembrar\n\n![operadores](figure/operadores.png)\n\n![Lógicos](figure/logicos.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fogliarinatan%2Fapplications-with-kivy-in-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fogliarinatan%2Fapplications-with-kivy-in-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fogliarinatan%2Fapplications-with-kivy-in-python/lists"}