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

Create an android app #151

Closed
dessalines opened this issue May 15, 2019 · 50 comments
Closed

Create an android app #151

dessalines opened this issue May 15, 2019 · 50 comments
Assignees
Labels
enhancement New feature or request extra: help wanted Extra attention is needed

Comments

@dessalines
Copy link
Member

dessalines commented May 15, 2019

Clients

Apps

@dessalines dessalines added enhancement New feature or request extra: help wanted Extra attention is needed labels May 15, 2019
@mister-monster
Copy link

I'll be on this, I'm probably going to need some help.

Also if someone wants to work on an iOS app I won't be able to do that.

@QuestofIranon
Copy link

QuestofIranon commented Jun 21, 2019

What is the current status on the Android app? I've been following development of lemmy for a while now, would like to help out.

@dessalines
Copy link
Member Author

dessalines commented Jun 21, 2019

I don't think anyone's started it yet. If anyone's interested, I'd give all the help I can, API-wise.

The main idea is that someone could fork slide, wire up the new API.

@mister-monster
Copy link

I haven't started yet. I wanted federation to at least be working in beta before I started because this project is mainly going to focus on adding multi account, multi server and API changes to slide. If you want to do it though feel free, the main reason I was going to is because I didn't see anyone else interested in doing it and I think it is important.

@poperigby
Copy link

Can you add the functionality to the current Slide app so people can use Reddit and Lemmy in the same app?

@dessalines
Copy link
Member Author

I'm not sure, you'd have to ask over at slide, or whoever eventually tackles this.

@poperigby
Copy link

I'll open an issue

@poperigby
Copy link

Here it is. If you want, you can go vote on it and discuss.

@poperigby
Copy link

Looks like it isn't going to happen. Just go ahead with forking it.

@Alexendoo
Copy link

Hi, a dev from Slide here, thanks for your interest!

I would say that reddit is so tightly coupled in Slide that supporting a different API would practically require a rewrite. We also carry a substantial amount of legacy issues.

A such I'd suggest that rather than forking it would actually be easier to create an entirely new app for Lemmy, with all the niceties that brings (Kotlin, Jetpack, etc.). It would be quicker to get a basic demo app up and running that way, and ease ongoing maintenance significantly.

@StaticallyTypedRice
Copy link
Contributor

Somewhat related, but since Lemmy already uses a single-page web app that only makes API calls, could we not just package that up with Electron or another embedded browser app platform to get some basic apps?

@dessalines
Copy link
Member Author

dessalines commented Jan 24, 2020

Its doable, but wouldn't really be that great, and would look exactly like it would in a browser window.

Now that we have an http-api and the websocket API, this is very doable for someone familiar with android. I might start one myself after I do more federation work, but the front end work keeps piling on.

The only other native app I'd be interested in, is a command line one similar to tuir but for lemmy : #152

@StaticallyTypedRice
Copy link
Contributor

Its doable, but wouldn't really be that great, and would look exactly like it would in a browser window.

Now that we have an http-api and the websocket API, this is very doable for someone familiar with android. I might start one myself after I do more federation work, but the front end work keeps piling on.

The only other native app I'd be interested in, is a command line one similar to tuir but for lemmy : #152

Personally, I think federation would be more important. We can make an embedded browser app in the meantime (I might take a crack at it when I have time), or we can do without an app, but the most important thing is federation because that's one of our core goals.

@humancalico
Copy link

Can I work on this?

@dessalines
Copy link
Member Author

Absolutely! @Nutomic is doing some very preliminary looking into to forking redreader and converting, but I'm of the opinion it might be easier just to start a new kotlin + jetpack app from scratch.

Just let me know if you need anything, we have both a working http API and websocket API.

@humancalico
Copy link

@dessalines Would you consider a Flutter app?

@Nutomic
Copy link
Member

Nutomic commented Jan 28, 2020

@humancalico I have never used that before. Does it actually feel like a native app?

@humancalico
Copy link

Yes it does. You can check out some of the popular apps made in Flutter at https://flutter.dev/showcase

@dessalines
Copy link
Member Author

It took a while to figure out, and it looks like flutter apps do compile to native, but it would require an entire rewrite anyway, so why wouldn't you use kotlin / jetpack, which is the preferred, lower-level, and much faster way to make an android app nowadays.

@StaticallyTypedRice
Copy link
Contributor

It took a while to figure out, and it looks like flutter apps do compile to native, but it would require an entire rewrite anyway, so why wouldn't you use kotlin / jetpack, which is the preferred, lower-level, and much faster way to make an android app nowadays.

Also, Flutter is made by Google. Do you really want them in the Lemmy project?

@StaticallyTypedRice
Copy link
Contributor

I'm going to move forward with my idea of wrapping the web client: https://dev.lemmy.ml/post/29826

@dessalines
Copy link
Member Author

@StaticallyTypedRice If you'd like to, go ahead, but ya as I stated I hate web wrapper apps with a passion. If we did things that way, every website would be an embedded chromium / android chrome instance, and our RAM and batteries would die pretty quickly.

The built lemmy is small, so the app would probably only be about as big as whatever browser cordova uses.

@StaticallyTypedRice
Copy link
Contributor

@StaticallyTypedRice If you'd like to, go ahead, but ya as I stated I hate web wrapper apps with a passion. If we did things that way, every website would be an embedded chromium / android chrome instance, and our RAM and batteries would die pretty quickly.

The built lemmy is small, so the app would probably only be about as big as whatever browser cordova uses.

In that case, you might want to use Qt for the app. It's C++ so it's fast and light, and compiles to every mobile and desktop platform.

@StaticallyTypedRice
Copy link
Contributor

There's even a Qt wrapper for Rust: https://github.com/rust-qt

@igalic
Copy link

igalic commented Jan 30, 2020

If we did things that way, every website would be an embedded chromium / android chrome instance, and our RAM and batteries would die pretty quickly.

on mobile OSes, the browser is available as library for apps that want to embed / wrap a website. and every OS worth their money de-duplicates loaded libraries in RAM, until you start writing to it, which i hope most libraries don't actually allow

so the situation you're describing is the one we have one we have on the desktop right now, thanks to Electron: every app (website) ships their own version of electron, chromium and NodeJS.

@5HT2
Copy link

5HT2 commented Jun 22, 2020

Just commenting so I can be assigned, see #828

@dessalines dessalines changed the title Create an android app / using slide Create an android app Jun 22, 2020
@jneumann
Copy link

Is there a oublicallt available lemmy mobile app that is being developed? I found out about Lemmy from hn, and I'd love to help build an app for it.

@5HT2
Copy link

5HT2 commented Jun 30, 2020

No there isn't, which is why this issue is still open.

This issue is assigned to me because I'm planning on making one, you're free to join the Matrix chat to discuss it specifically, I'd be happy if I had someone else to help with that.

@CUB3D
Copy link

CUB3D commented Jul 4, 2020

I actually started working on a native android app for Lemmy, here. Sadly I don't really have the time to continue working on it right now. Just pointing this out in case it's useful as a starting point for anyone else

@koredefashokun
Copy link

I'm currently working on a React Native client for Lemmy here. I believe it's a great option since the web client is already built in Inferno (React-like API) and TypeScript, as it should be quite easy to rebuild by copying some of the web code. Would definitely appreciate contributions.

@poperigby
Copy link

I'd be willing to try it out and give feedback. How can I compile it?

@5HT2
Copy link

5HT2 commented Jul 8, 2020

I started talking with the CTH team and also discussed this with the Lemmy team, we would prefer to have an Android native app with an iOS wrapper, then just another web app.

@koredefashokun
Copy link

@Dominikaaaa React Native is not web-based.

@5HT2
Copy link

5HT2 commented Jul 8, 2020

Forgive my ignorance, I assumed it was because typescript is a web language(?)

@koredefashokun
Copy link

No offence taken @Dominikaaaa. It's mostly used for web, but it can be used on the server-side (with Node or Deno) as well. It basically can run wherever JS can run.

@dessalines
Copy link
Member Author

@koredefashokun What's the repo again?

@Dominikaaaa and yours too? I wanna add these links to the top of this issue.

@5HT2
Copy link

5HT2 commented Jul 22, 2020

The CTH team doesn't have an app yet, we've focused on making a Kotlin API for Lemmy first

https://github.com/eiknat/lemmy-client

@koredefashokun
Copy link

@dessalines, here's the link to the repo: https://github.com/koredefashokun/lemmy-mobile

@dessalines
Copy link
Member Author

Cool. I'll add these to the readme also soon.

@Nutomic
Copy link
Member

Nutomic commented Oct 2, 2020

Lemmur wasnt mentioned here yet, I added it to the list. Their development looks very active.

https://github.com/krawieck/lemmur/

@carcinocron
Copy link

Is anyone interested in taking the lead on making a (iOS and/or Android) app using https://www.scade.io/ (swift)?

@5HT2
Copy link

5HT2 commented Oct 7, 2020

I'm helping with a Kotlin native app for Android with an iOS wrapper planned, with the CTH team. Lemmur is Dart afaik and there's another mobile on in progress which is in typescript. I don't think there's a need for a swift app

@dessalines
Copy link
Member Author

@L1ving is there a repo for the kotlin one yet? I've been playing with jetpack compose a little bit this past week, and figured we could use some of their template examples as a good starting place.

@5HT2
Copy link

5HT2 commented Oct 7, 2020

It's only a Kotlin API for Lemmy at this point, although mostly finished. I plan to start working on the actual UI soon(?), I've been busy with irl stuff. https://github.com/eiknat/lemmy-client

@5HT2
Copy link

5HT2 commented Oct 7, 2020

Jetpack compose is also what we were planning on using afaik

@alxlg
Copy link

alxlg commented Oct 8, 2020

I see on the Play Store there is this client available: https://play.google.com/store/apps/details?id=com.lemmy

@5HT2
Copy link

5HT2 commented Oct 8, 2020

That one isn't open source, last time I checked

@srcrip
Copy link

srcrip commented Jan 30, 2021

Just curious, was there any discussion about just making the lemmy client on the web a PWA? I believe you can actually list PWAs on the android store now.

@dessalines
Copy link
Member Author

I'm kinda against having chrome wrappers as installable apps, taking up their own memory space on your phone outside of the browsers you're already using. The lemmy-ui is currently a PWA, if you're using either chrome or firefox on android you can click install as app instead of bookmark.

Outside of that there are now two native apps for lemmy on mobile (android and iOS), which I'd much rather have people on phones use and help contribute to, lemmur and remmel, listed here: https://join.lemmy.ml/apps/

@Nutomic
Copy link
Member

Nutomic commented Mar 3, 2021

There is an Android app now (and iOS as well), so I'm closing this.

@Nutomic Nutomic closed this as completed Mar 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request extra: help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests