Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GUI on Remy for mobile devices #495

Closed
tellts opened this issue Aug 22, 2022 · 15 comments
Closed

GUI on Remy for mobile devices #495

tellts opened this issue Aug 22, 2022 · 15 comments

Comments

@tellts
Copy link

tellts commented Aug 22, 2022

Please give examples on how to use Remy to create apps for mobile devices.

@dddomodossola
Copy link
Collaborator

Hello @tellts ,

Here is an example for you. In the following code the application handles the window resize to adapt the layout on different screen resolutions. To verify its behaviour just resize the browser screen and you will see the layout change.

import remi.gui as gui
from remi import start, App

class MyApp(App):
    def main(self):
        #creating a container GridBox type
        self.main_container = gui.GridBox(width='100%', height='100%', style={'margin':'0px auto'})
        
        label = gui.Label('This is a label')
        label.style['background-color'] = 'lightgreen'
        button = gui.Button('A button', height='100%')

        text = gui.TextInput()
        #defining layout matrix, have to be iterable of iterable
        self.main_container.define_grid(['ab',
                                    'ac'])
        self.main_container.append({'a':label, 'b':button, 'c':text})
        #setting sizes for rows and columns
        self.main_container.style.update({'grid-template-columns':'10% 90%', 'grid-template-rows':'10% 90%'})

        # returning the root widget
        return self.main_container
    
    def onpageshow(self, emitter, width, height):
        self.onresize(emitter, width, height)

    def onresize(self, emitter, width, height):
        #redefining grid layout
        if float(width)<float(height):
            self.main_container.define_grid(['c','a','b'])
            self.main_container.style.update({'grid-template-columns':'100%', 'grid-template-rows':'33% 33% 33%'})
        else:
            self.main_container.define_grid(['ab',
                                    'ac'])
            self.main_container.style.update({'grid-template-columns':'10% 90%', 'grid-template-rows':'10% 90%'})


if __name__ == "__main__":
    # starts the webserver
    start(MyApp, address='0.0.0.0', port=0, start_browser=True)

@tellts
Copy link
Author

tellts commented Aug 22, 2022

Thanks you. Can you please tell me how to run this sample code on a mobile device?

@dddomodossola
Copy link
Collaborator

The easiest way to run python on Android is using the QPython app. Of course remi can be used in any python capable device.

@tellts
Copy link
Author

tellts commented Aug 22, 2022

I have installed the Chaquopy https://chaquo.com/chaquopy/ . https://play.google.com/store/apps/details?id=com.chaquo.python.demo3 .
print(os.popen('echo "hello"').readline())
import runpy runpy.run_path("a1.py")
x = runpy.run_path("a1.py") print('x')
This is a free environment for running Python programs. Qpython does not work for me, since the tablet with Android 4.2 with a diagonal of about 10.

@tellts
Copy link
Author

tellts commented Aug 22, 2022

These are 3 examples of how the code is run in this environment. Line breaks have been removed between commands.

@dddomodossola
Copy link
Collaborator

Does it provide the possibility to install pypi packages? If so you can install remi and run your app

@tellts
Copy link
Author

tellts commented Aug 22, 2022

If I understand correctly, this is not the way to do it. But I can ask the support service how to install the program from the distribution.
https://chaquo.com/pypi-7.0/

https://chaquo.com/pypi/

@tellts
Copy link
Author

tellts commented Aug 24, 2022

Hello. Could you tell me what questions to ask correctly or ask there yourself, since I myself can’t do it quite professionally?
chaquo/chaquopy#689

@dddomodossola
Copy link
Collaborator

Hello @tellts ,
I think that they understood your question.
They told you that a configuration file has to be modified inside your Android device. I suppose you should use a text editor.
After editing the configuration file, you should be able to do a pip install remi (maybe the chaquopy provides a console to write this command).

@tellts
Copy link
Author

tellts commented Aug 24, 2022

If I am not mistaken, this must be done in the Android Studio by installing a special plugin https://chaquo.com/chaquopy/doc/current/android.html (this is written at the very bottom of the page). Another example is here https://chaquo.com/chaquopy/doc/current/faq.html#faq-mirror

@dddomodossola
Copy link
Collaborator

I think it is correct.

I suggest you to use QPython, it is easy to use and full featured.

@tellts
Copy link
Author

tellts commented Aug 25, 2022

Qpython does not install on older tablets with Android 4.x

@dddomodossola
Copy link
Collaborator

Do you really need to run the python script on the mobile device? Consider that remi is a Web Gui, it means that you can run the App on another device (a PC for example) and you can see thr interface on other devices in the network

@tellts
Copy link
Author

tellts commented Aug 28, 2022

Hello. Yes, I wanted to be able to make programs in Python with the GUI, but at the same time, so that they were autonomous from the Internet.

@dddomodossola
Copy link
Collaborator

Unfortunately I don't know about other solutions to run python on Android

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants