4pr0n / ripme

Downloads albums in bulk
MIT License
917 stars 203 forks source link

Porting to Android #414

Open Matt07211 opened 7 years ago

Matt07211 commented 7 years ago

I'm planning to port to android, below is my thoughts listed and some questions to be discussed.

Thoughts:

Questions to be talked about:

If there is any questions you have, feel free to post it so we can have a discussion about it.

Feel free to contribute to the project once it gets started. Note: I won't be able to start till next week, so.... ;)

metaprime commented 7 years ago

You could make it a separate project and use this repo as a submodule, then you can handle updating the submodule version when you feel like it, and re-release the app on your own cadence.

Or you could make all of the necessary changes to build an Android app and PR to this repo. Ensure you don't break the build of the desktop app, etc.

Up to you. Let me know your thoughts.

Matt07211 commented 7 years ago

I might go the submodules (https://github.com/blog/2104-working-with-submodules) route.

It'll allow people contributing to the app (if it ever happens) to be able to work on the app components not the rip-me components. It'll also stop all the bloat that will come from the app development. Do you have any concerns or information that may be useful before I start using submodules.

I'll start on sketching the look of the app tonight.

metaprime commented 7 years ago

@Matt07211 I agree. Separation of concerns. :)

For that route, rather than working in a fork of Ripme, you should create a new repo (maybe called RipmeAndroid?). Paste the link to your repo here when you've got it started. I'd like to keep tabs on the progress. I might even help out if I have the time and there's nothing urgent to resolve in Ripme.

metaprime commented 7 years ago

@Matt07211 with more than one Ripme-related project, we might want to create an organization for Ripme and related projects so things are centralized instead of hosted under different users.

Matt07211 commented 7 years ago

Yea I was planning to create a repo under the name "Ripme-Android". But if you plan to setup an organisation (which I think is a good idea) tell me :)

I can create the repo now/soon if you really want (License, readme and Rip-me submodule) anything else in the repo will have to wait till later in the week when I can start (and download Android studio).

Either way let me know.

metaprime commented 7 years ago

I'll keep you updated if I go the organization route. I don't want to hijack this project too much. In any case, you can go ahead and set up your repo under your own username, and we can move it later.

Matt07211 commented 7 years ago

Don't worry about hijacking this project, I'll need input about stuff anyway ;) As I said I won't be able to start this project untill later this week (probably the 5th)/next week. So that at least gives you a couple of days to decide.

metaprime commented 7 years ago

@Matt07211 I'm just saying it doesn't matter when I decide since you'll have your own fork anyway. It's just a matter of where the "main" copy is, and with GitHub and Git in general, that's just a social construct :)

Matt07211 commented 7 years ago

I don't need no philosophical intricacies on deciding where the fork will be located.

I'll have a fork created by next week anyway

metaprime commented 7 years ago

Fair enough. I suppose it's something we should do at some point anyway. I'll need to change the update mechanism again so that future releases come from ripme/ripme instead of 4pr0n/ripme.

.... It's just that there are number of work items to do to set this up as an organization that make this a bit of a pain.

Matt07211 commented 7 years ago

By the sounds of it your gonna go the organisation route. Geuss refactoring the code is gonna be annoying.

If I may inquire (for a seperate project of mine), what is required to create an organisation? What is the actual process? If you don't have the time to answer then that's fine :)

metaprime commented 7 years ago

Here's what I'll do. I'll make the organization, create a repo for Ripme-Android, and add you as a contributor to that repo. We can add the main ripme project repo to that organization later, but it allows you to start your project with the main repo in a logical place for how we're planning to move forward.

As for the details of making an organization, you can think of it like an "account" that you access via your normal account's log-in and which can have more than own "owner". As for the other details, it's been a while since the last time I made one.

But basically it means that we will have a centralized place to go with a name that isn't one of our usernames and instead represents the project as a whole.

metaprime commented 7 years ago

Looks like someone already registered a user with the name ripme so we can't register the organization as "ripme".

https://github.com/ripme

I'm drawing a blank on an alternative to use as an organization name. Ideas?

rautamiekka commented 7 years ago

4pr0n_RipMeAndroid ?

Matt07211 commented 7 years ago

How about "RipMe_AlbumDownloader" Or "RipMe_ContentDownloader" Or "RipMe_Downloader" Basically the name (since you can't just use RipMe) should symbolise the main task that the program does.

My work WiFi was being rather dodgy, so I was unable to download Android Studio, I'll try again tomorrow when I am at work again (if that doesn't work Ill just go to my local library and download there during the weekday, cause it's a decent sized download)

metaprime commented 7 years ago

Or something short and sweet like RipMeApp?

Matt07211 commented 7 years ago

Yep. That sounds the best. I like it.

metaprime commented 7 years ago

https://github.com/RipMeApp/ https://github.com/RipMeApp/ripme https://github.com/RipMeApp/RipMe-Android

metaprime commented 7 years ago

Not ready to move main development or deployment to https://github.com/RipMeApp/ripme but at least it's there.

metaprime commented 7 years ago

I added https://github.com/RipMeApp/ripme as a submodule of https://github.com/RipMeApp/RipMe-Android for you to get you started!

Matt07211 commented 7 years ago

Thanks. If my work WiFi isn't flaky today, I'll have android studio downloaded and I'll have started on the app by the end of tonight.

Matt07211 commented 7 years ago

Sorry haven't been able to start this little side project, to busy with work :(

I've got Android studio (I still need to download the SDK) and have git cloned the repo and sub module. But haven't had the chance to start on this project.

I have still yet to see how much effort is needed to port the java code to the equivalent API (I'm blaming this on work taking up all of my time;) )

metaprime commented 7 years ago

@Matt07211 no worries, take your time. I'm also busy until February and won't be able to do any coding until then.

Matt07211 commented 7 years ago

@Metaprime That's good, didn't want you to think that I'm the type of person to say something and not follow through. I will follow through it just may be really slow.

One quick question, what part of the java code do you think will bring me the most trouble (ignoring the java code for the UI as it's irrelevant)?

metaprime commented 7 years ago

@Matt07211 Honestly no idea. I've never done a port of a desktop Java app to Android and my Android app dev experience is very little to practically nonexistent.

I think the biggest practical challenge is the huge space requirements an app like this commands. Not sure if that will be an issue for Android devices. Uploading directly to the cloud to save space locally makes some kind of sense but the technical problem there is the bandwidth required (download image, upload image -- 2x the bandwidth of simply downloading -- I don't think there's any way to have the images you're downloading beamed directly to the cloud storage and bypass the device -- that would require support from each respective service of allowing you to retrieve a file from anywhere on the web).

The fact that this app doesn't support HTTPS connections at the moment which makes privacy a problem -- downloading/uploading NSFW pictures on a mobile network without a secure, encrypted connection has me worried. Additionally, connecting to a cloud service without HTTPS is stupid if not impossible.

(Actually that's my major technical concern that really should be improved before tackling other work. See #214 #403 and the anti-pattern of forcing https links to http as supported by #366.)

metaprime commented 7 years ago

So there's some major technical hurdles before we're app-viable, but that doesn't mean we can't prototype.

Matt07211 commented 7 years ago

I'll be prototyping tonight ;)

A note about the space requirements;

In regards to cloud storage, it'll seem more like a wait and see approach, coupled with research, and how the original app has implemented the feature. This is a area that definitely requires a look into at the minimum.

Https related issues may also be a wait and see, but this ( https://developer.android.com/training/articles/security-ssl.html#HttpsExample ) Android developer page looks promising for https related issues with Android specifically

Either way it'll be a little while before we get a semi functioning app, but that's the fun isn't it. I'll hopefully at least be able to update the repo in the coming days.

rautamiekka commented 7 years ago

The only way to have your rippings go to cloud without downloading+uploading is either the cloud end or the source end has to initiate the transfer.

Technically your computer, the 3rd (could be wrong number) party, could tell the source where to send the data, or the cloud where to get the data from, but that's quite special arrangement which to me sounds the same as opening SSH connection and running a command.

That arrangement wouldn't be negotiable with the source without owning it yourself or a friend own it or something along that line.

Matt07211 commented 7 years ago

@rautamiekka Yea that sounds about right. :(

As for my progress, I have some other side projects that need to be finished first and this is around last on the list (I'm probably gonna be like what metaprime is and won't be able to do much till February). As for the other day, I tried building a default hello world app and Android Studio/Gradle kept throwing up errors one after another, after a while I gave up for the night and went to sleep.

Matt07211 commented 7 years ago

I'd like to say work has slowed down, some of my side projects are almost complete, it's near the beginning of a new month, so you I'm gonna try again at this :)

metaprime commented 7 years ago

I was thinking the most plausible/scalable approach for cloud storage backend which doesn't involve download/upload from the device would be if the cloud storage had an API where you could tell it where to download a file from. I'm thinking this is most likely not supported as it could be easily and heavily abused.

Most likely taking advantage of cloud storage would require download and upload which is twice the bandwidth cost to a mobile device. Besides that and privacy on mobile networks or when using e.g. work Wi-Fi there's no inherent concern or implementation blocker there.

Matt07211 commented 7 years ago

http://imgur.com/a/3bReW As you can see in the the screenshot, the Save to drive is in the share menu, so this means I'd probably be able to use it, Google drive also shows up in the File/Documents picker. (Not uploading picture as has personal details and it's a prick to Balck out on a mobile)

But with both, I believe the item gets downloaded onto the phone and then uploaded :(

I'm currently at this very moment reinstalling Ubuntu as my previous installation has borked (died, filesystem corruption) on itself.

metaprime commented 7 years ago

@Matt07211 oh no! Hopefully you didn't lose any data or work!

Yes, I think the share option involves reuploading downloaded content, although I could be wrong.

I wasn't imagining this being implemented via the share menu personally, but that's an interesting approach.

Matt07211 commented 7 years ago

I believe only a few files got corrupt, the most recent files I was working on, but no biggie, I booted a love USB and .tar'ed my whole home directory before reformat and reinstall.

I wasn't saying implementing via share menu (idea does sound cool [Goto Imgur Album page, share, ripme-android, URL gets passed to ripme-android app]but not planning to implement anytime soon), I was more pointing out the fact that Google drive had a save to Drive option.

metaprime commented 7 years ago

Ah yes, I was just brainstorming today about how to make a mobile app experience not terrible. "Share to ... > Ripme" sounds like a perfect way to do this!

Matt07211 commented 7 years ago

Yea it's a cool idea. I've gotta stop putting bit off and have another crack at doing this, cause at the current moment I keep putting it off to work on porting a device tree for my android device so I can build LineageOS.

I'll be setting Android Studio back up again tonight, let's see how many gradle errors I get this time ;)

Matt07211 commented 7 years ago

I'm sorry, completely forgot about this side projects, been a bit engrossed in trying to port LineageOS to my android phone (have a look at my recent commit history).

So thanks @metaprime for giving me write access to the Rip-Me-Android repo, it reminded me of the project. So time for me to take another crack at it, let's hope I don't get some many damn gradle build errors as last time.

metaprime commented 7 years ago

@Matt07211 I was surprised to find you didn't have write access already. Was just auditing access when I added the ripme-wiki repo :P

BeardedPoultry commented 7 years ago

This thread has been back and forth for several months now, has there been any other discussion on if anyone is thinking about contributing to the mobile development? I have done several mobile applications and im going to be playing around with some ideas that I have for it.

Matt07211 commented 7 years ago

Yea feel free to give it a go, I haven't been able to do much until really recently (I just got internet access at home about a week ago). And before at one point I had filesystem corruption which put me right back, so I've been holding off doing it until I had better Internet access, but I'm putting it off again as my hard drive has borked itself and I'm going to need to replace it, so I'm currently in no position to give it another go so go ahead and start/try :)

BeardedPoultry commented 7 years ago

I saw that you were dealing with that a couple of months ago and yeah a bork is less than pleasant. Im going to be throwing my ideas at the wall this weekend. One of the ideas that i'm looking into having an api section within the settings so that the user can plug in their own api keys for the supported sites in case the main keys go down. Either way I have a hobby for the next few weeks. Cheers.

Matt07211 commented 7 years ago

Yea, I'm going to be replacing my hard drive with another spare I've got tomorrow, and will be getting everything setup up again tomorrow's.

If your willing to work with someone who doesn't have much app development experience (I was planning to use this as a learning experience) I would appreciate it, of not then I'll let you do it.

If you want , when I have some free time tomorrow, I can sketch up a rough UI as a base to follow.

BeardedPoultry commented 7 years ago

Yeah that would be fine, I have no issue collaborating on it. Its been a bit busy on my end with work and what not but this weekend is going to be a good time for me to throw some time at it.

metaprime commented 7 years ago

Good to see interest growing :P

jaylenjinx commented 5 years ago

Is this project still being worked on? Just wondering cos I am thinking of trying Android development and might be able to help.

Matt07211 commented 5 years ago

Not actively being done with me, ha fto shelf the idea with real life issues taking presidence

On 24 Nov. 2018 2:37 pm, "TAD3V" notifications@github.com wrote:

Is this project still being worked on? Just wondering cos I am thinking of trying Android development and might be able to help.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/4pr0n/ripme/issues/414#issuecomment-441340944, or mute the thread https://github.com/notifications/unsubscribe-auth/AMPsKcHhnB7uM_207x0_TJ6b5ExrRFq5ks5uyL7ggaJpZM4LYzoQ .

cyian-1756 commented 5 years ago

@TAD3V

Is this project still being worked on?

AFAIK no one is currently working on an android port but development of ripme has moved to https://github.com/RipMeApp/ripme/

jaylenjinx commented 5 years ago

@TAD3V

Is this project still being worked on?

AFAIK no one is currently working on an android port but development of ripme has moved to https://github.com/RipMeApp/ripme/

cool thanx. 👍

jaylenjinx commented 5 years ago

Not actively being done with me, ha fto shelf the idea with real life issues taking presidence On 24 Nov. 2018 2:37 pm, "TAD3V" notifications@github.com wrote: Is this project still being worked on? Just wondering cos I am thinking of trying Android development and might be able to help. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#414 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/AMPsKcHhnB7uM_207x0_TJ6b5ExrRFq5ks5uyL7ggaJpZM4LYzoQ .

Ok then I might try porting it. 😀