remi icon indicating copy to clipboard operation
remi copied to clipboard

GUI on Remy for mobile devices

Open tellts opened this issue 3 years ago • 15 comments

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

tellts avatar Aug 22 '22 09:08 tellts

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)

dddomodossola avatar Aug 22 '22 09:08 dddomodossola

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

tellts avatar Aug 22 '22 12:08 tellts

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

dddomodossola avatar Aug 22 '22 12:08 dddomodossola

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 avatar Aug 22 '22 12:08 tellts

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

tellts avatar Aug 22 '22 12:08 tellts

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

dddomodossola avatar Aug 22 '22 12:08 dddomodossola

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 avatar Aug 22 '22 14:08 tellts

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

tellts avatar Aug 24 '22 00:08 tellts

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).

dddomodossola avatar Aug 24 '22 07:08 dddomodossola

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

tellts avatar Aug 24 '22 08:08 tellts

I think it is correct.

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

dddomodossola avatar Aug 25 '22 06:08 dddomodossola

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

tellts avatar Aug 25 '22 07:08 tellts

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

dddomodossola avatar Aug 27 '22 12:08 dddomodossola

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.

tellts avatar Aug 28 '22 09:08 tellts

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

dddomodossola avatar Aug 28 '22 10:08 dddomodossola