AnimeNeko / Atarashii

DISCONTINUED. Atarashii! - An amazing, modern MAL app for Android 4+
http://atarashiiapp.com
BSD 2-Clause "Simplified" License
79 stars 23 forks source link

Provide a pure-floss build flavor #437

Closed ghost closed 8 years ago

ghost commented 9 years ago

Crashlytics is a non-free buildtime dependency, could you add a gradle build flavor that works around it? Maybe you might want to have a look at acra.ch as a free alternative.

Also: Are the jar files still used?

ratan12 commented 9 years ago

The picasso and Retrofit .jar files not. Yes, crashlytics isn't really handy when developing but I honestly do not mind. It works pretty decent and I am kinda happy with it.

Currently I am working on a cleanup which is finished and an ORM implantation (dbflow) but I got stuck due some problems with saving arrays in the db because RecordStub$Table could not be resolved :/

Edit: I will drop the ORM idea and just improve the DB

srvrguy commented 9 years ago

I'll leave this open for now, but the application doesn't depend on Crashlytics. Feel free to remove the dependency and build it yourself until we get around to making a special flavor for purists.

As for ACRA, I'm personally not too interested in supporting it at this time. Unlike Crashlytics, the official backend requires either paying a provider or setting it up yourself. I currently run the MAL API server out of generosity, and I don't want to add more things to maintain on my own time that will use up resources on my personal server. If that happens, the official builds may start having to display ads or find other ways to monetize to pay for the resource usage, the server usage, and my time. I do not want that to happen.

aphirst commented 9 years ago

It's definitely a shame that the most recent build in F-Droid is 1.4.x. I mean, it's great that we nonetheless have builds up on github... but there's definitely an interest in having it in the FOSS repos that extends beyond myself. I'll follow this with keen interest, and remark with the fact that I'm sure that many would be willing to provide support in ways other than having to have such unsightly things bundled into official builds...

srvrguy commented 9 years ago

I left the issue open because I'm not opposed to this, there's just no time available for any of the current core contributors to do the work. We have plenty of other things that we consider more pressing. As it is, I barely have enough free time to track down all the changes MAL does and fix our API code, let alone do lower-priority work on the Android application.

If you want a build flavor that doesn't require Crashlytics, please do the work and submit a pull request. If you can't do this, it'll have to wait until someone has time to do it. Posting about it on this issue will not give us more free time to do the work.

aphirst commented 9 years ago

Of course I appreciate the situation. Sadly I don't have the applicable knowledge to be able to do it, but at least in my own experience, those who do and who stumble upon such open issues are often more likely to decide to invest their own if they know there are lots of other people who'd appreciate seeing it done. Of course there's always a fine line between "keen" and "demanding", and no-one wants to appease people with self-entitlement issues.

Anyway, from this point I'll just sit tight and stay subscribed to the thread. :smile:

aphirst commented 9 years ago

Actually, I do have a suggestion that might be a stop-gap for a lot of people, myself included, assuming you were to consider it a viable option: Even without a "fully FOSS" version in the official F-Droid Repository, have you considered running your own F-Droid Repo containing the .apk Builds that you otherwise simply have available for Direct Download from your github Releases pages?

ratan12 commented 9 years ago

I am not against it but running a repo would mean putting it on the server.

aphirst commented 8 years ago

Has there been any further consideration to the possibility of running an F-Droid server for the official .apk releases, as other projects (e.g. Öffi, LibreSignal) do?

ratan12 commented 8 years ago

Can I track users from my app? You can, but if you include any kind of tracking or analytics in your application (even sending crash reports) this must be something that the user explicitly opts in to i.e. you ask them on first run, before sending anything anywhere, or there's a preference that defaults to OFF. In all other cases, we may still include the app, but it will be flagged with our 'Tracking' AntiFeature, which means users will only ever see the app if they choose to view such apps.

Additionally, note that third party analytics libraries that come in the form of proprietary software (for example, Google Analytics or Flurry) are not acceptable here.

It doesn't matter, we must remove crashlytics to publish it which I do not like. I have fixed many bugs thanks to that tool.

aphirst commented 8 years ago

As far as I understand, all of that applies only to things you want to submit to the official F-Droid repo (I think you got that from one of the official f-droid.org pages). You can host whatever the hell you want in your own F-Droid repos. (I wouldn't have suggested it as a viable stop-gap otherwise!!!) Being available for install using the F-Droid software is not the same thing as being available in the official F-Droid repositories, precisely because people can set up their own F-Droid compatible servers which can then be easily added to a repository list in a user's F-Droid client - just like with repositories in the Linux world.

ratan12 commented 8 years ago

Like motokochan said before we have both no problems with it but maintenance and hosting is the issue here. As long there isn't a way for this we can't do it.

srvrguy commented 8 years ago

We'll leave it open for a possible future option, but it's not going to be something near-term.

aphirst commented 8 years ago

Fair enough. Just wanted to see if anything had happened in the meantime. Thanks for the responses.

ratan12 commented 8 years ago

Atarashii is now officially in the Amazon store. Link: http://www.amazon.com/Something-Dreadful-Atarashii/dp/B01CUOJVAI/ref=sr_1_1?s=mobile-apps&ie=UTF8&qid=1457786068&sr=1-1

ratan12 commented 8 years ago

@krt16s If I am right the Jar files have been removed. The only issues that are left should be Crashlytics and Answers right?

I could make a FLOSS gradle flavor which won't include those if those are the only issues.

ghost commented 8 years ago

I am currently taking exams, so I havent looked in depth at it, but if crashlytics-free flavor is done its only mobihelp.jar left. Haven't looked at what its in there, but most likely eithe rhelpfile stuff or buildable from https://github.com/freshdesk/mobihelp-android?

ratan12 commented 8 years ago

It is help stuff where users can create tickets if they have problems. The jar file is in the repo, MIT Licensed and it is documented. http://developer.freshdesk.com/mobihelp/android/api/reference/com/freshdesk/mobihelp/package-summary.html

I am not sure if the mobihelp.jar is an issue though?

ratan12 commented 8 years ago

@krt16s I have been looking into this since we removed mobihelp. Crashlytics can be removed trough a flavor but you will get build errors because the imports.

Is it also fine if the app detects the Flavor type and disables the Fabric startup code? The library will be in the app but it won't be running.

ratan12 commented 8 years ago

@krt16s @aphirst Okay, I made a FLOSS Flavor! If you use FLOSSBeta and FLOSSProduction you should get a build without Crashlytics which works fine! Mobihelp has been removed just like the jar files.

I added this in commit 7ba5363 With this everything should be okay and this issue can be closed after almost a year.

It would've be nice if you can inform us when you put it on Fdroid

ParkerK commented 7 years ago

Filed an issue with F-Droid, and as of 30 minutes ago, the repo database has been updated. WIll hopefully be live within 24 hours now.

Thanks again for taking the time for a full FOSS flavor, @ratan12

ghost commented 7 years ago

The build is disabled, since building throws resource issues for me.

@ratan12: Will the app still be usual when using dummy api keys? (btw: sorry for not responding, by inbox is flooded by github and gitlab notices -.-)

ratan12 commented 7 years ago

@krt16s Resource errors could be missing translations which could be skipped by adjusting the gradle file.

No dummy API keys will cause to a not working AniList. You can create an account and get API keys or I can talk to the website owner for Fdroid API keys.

delthas commented 7 years ago

Hello, any update on Atarashii being available on F-Droid (either through the main F-Droid repository or through a dedicated Atarashii F-Droid repository)?

ratan12 commented 7 years ago

I haven't heard anything back.

ShapeShifter499 commented 7 years ago

Maybe this can be added to @IzzySoft 's repository. Hopefully he sees this.

IzzySoft commented 7 years ago

@ShapeShifter499 My repo usually skips apps that are "just front-ends for a single web site". But I can see there's an issue open with FdroidData (which ao. mentions an outdated version available on F-Droid which I cannot find). Neither can I find a request for packaging of Atarashii. So if there's a "plain FOSS flavor" to build, maybe that would be the best approach (opening an RFP)?

ShapeShifter499 commented 7 years ago

@IzzySoft understandable. As for the outdated version, that was moved to the "F-Droid archive" repository. I haven't tried submitting a RFP for any F-Droid so before so I'll have to look into it and maybe get back to it sometime this week? Unless someone here wants to submit it first.

ShapeShifter499 commented 7 years ago

@krt16s @ratan12 does the fully FOSS build still fail? I've never built/compiled a Android app before. I don't really know where to start to compile a FOSS version.

IzzySoft commented 7 years ago

@ShapeShifter499 Oh, it's pretty straight-ahead. If you open an issue on that repo, you'll get a template to simply fill in the data. Part of the information I already gave above – but if you say it's already in Archive, RFP might be rejected ("package already available in F-Droid") and you'd better "bump" the update-request on FdroidData. Note that Boris (the one who originally responded to that) has left the team, so it might simply have lost its "assignment". Maybe pinging an active member might help (as long as that's not discouraged, I've not checked).

As you already initiated with your last comment, of course it's best to first make sure the build doesn't fail :wink:


TL;DR: Don't go RFP (as it's already in Archive) but try to get the still-open update-request processed.

srvrguy commented 7 years ago

We haven't been a front-end for a single website for some time. We actually support MyAnimeList and AniList.co, you choose at login.

I haven't built the application in a while since I've been busy and focusing on the API side, but there's a build configuration that skips the only closed-source component in the application and should leave you with a fully open source apk. Give it a try and see if it fills the requirements.

IzzySoft commented 7 years ago

@srvrguy Sorry, then I must have misread (though 2 websites is only a little more than one :wink:).

To explain: My repo runs on my private space – no organization behind it, no sponsors but myself. So it's a question of resources for me on all ends (including space on my home machine where I prepare the repo contents and time to maintain it; both increasing with each app added). That of course has the side effect of a somehow "personally flavored selection"; some of the details are explained on the repo's info page. I've counted Atarashii into the "special interest" category.

OK, let me sleep on it. Guess as small as your APK is (less than 3M currently), it cannot "hurt" that much – especially when restricting storage to the 2 most recent releases (so I could make use of the "not absolute" clause and make an exception :wink:). Categories "Internet" and "Multimedia" should match, right? And it requires an account for at least one of the two websites? Btw: Seeing Crashlytics, that will register as AntiFeature (and would be a show-stopper for the official F-Droid repo) unless you've got a specific "FOSS build" without it.

ratan12 commented 7 years ago

We have a Build flavor so it isn't hard for me to generate a FOSS APK without Crashlytics just like I mentioned before in this issue.

Yes you need one of the website accounts to use the app.

To build te app you need to add a dev key provided by anilist to use the API or that website won't work. If I build the FOSS APK you obviously won't need the dev key because I have an existing one.

IzzySoft commented 7 years ago

A FOSS flavor APK would definitely be preferred (and the flavor needed for the official repo anyway). I cannot build myself (no build environment; I'm no Android dev); if you could attach such an APK to the release (and make the name easily recognizable – e.g. something like *foss.apk or *noanalytics*) please let me know, so I can set it up on my end (which then includes automated fetches of updates).

IzzySoft commented 7 years ago

OK, here you go. One wish: If you keep multiple APKs attached to releases, make sure to keep the term "beta" in the name for the beta-channel one so it gets ignored at auto-updates (and my auto-updater picks the right one). Just update this issue if you need to change the naming scheme :wink:

ShapeShifter499 commented 7 years ago

@srvrguy @ratan12 add this info somewhere so F-Droid users know about this repo.

@IzzySoft it's not clear, is this the FOSS build being hosted?

IzzySoft commented 7 years ago

@ShapeShifter499 the one attached here at Github in releases/ which does not have the term "beta" in its name. If those who do the attachments ( @srvrguy / @ratan12 ) want a specific APK used for that: Decide for a "naming pattern" and let me know. That is, as long as there are multiple APKs attached (so my updater picks the correct one). As described, at the moment I use a "negative pattern": Don't take the "beta" one.