Yalpstore: Material design [Request]

Created on 4 May 2018  ·  33Comments  ·  Source: yeriomin/YalpStore

A rebuild of the ui to Material Design would be awesome...

enhancement

Most helpful comment

@SciFi1818 @ale5000-git @Rikk @leopard20

You can get a working prototype of a "material design" Yalp Store if you build the contemporary flavor. It has been there since 0.36. I've been reluctant to put it here or on f-droid because:

  • a lot has changed inside so it is bound to be less stable
  • not so much has changed outside so it is not very impressive. I've been trying to make Yalp Store "style-less" to make it have the default UI of the OS it runs on. So on devices with api>=21 it already conforms to the material design guidelines (except the drawer and the buttons mentioned below)
  • minSdkVersion is 14 now because of the android support library dependency so it cannot replace the default legacy flavor
  • apk size has doubled

Changes

  • Navigation drawer instead of the options menu
  • FABs in lists where there is a definite "main thing to do" e.g. "update all"
  • Details page - buttons no longer stick to the bottom.
  • Details page - "page background" pic, like in Play Store, if provided by the app developer.
  • Activity transitions between app lists and details.
  • minSdkVersion is 14 now because of the android support library dependency
  • since the style is enforced, it should look the same on all devices, so no holo ui on api<21

So the main change is the drawer. I tried to rip its sources from the support library like I did with some other things, but it is too tightly coupled to the rest, so I would have to rewrite a lot of it or include half of it. So I just included it as the dependency.

I'm planning to support both versions simultaneously so that newer devices would get the big "material design" version (if the device can run api>=14, it should not be a problem) and the old devices would get the small legacy version.

If you want to try it, you can:

  • try the alpha version on xda labs. I've put it there because it is possible to clearly mark it as alpha (incomplete) there while the stable is available too.
  • build it yourself - run Android Studio and choose contemporary in the build variants.
  • get it here com.github.yeriomin.yalpstore.plus_40.apk.zip

It is funny that this issue has appeared around the same time as #436 ...

All 33 comments

But without bumping minSdkVersion :-) (I would like)

It seems to be something undergoing. It was spotted on https://github.com/yeriomin/YalpStore/issues/436

I would love this too!

Download from XDA: https://labs.xda-developers.com/store/app/com.github.yeriomin.yalpstore
It is in test, not stable enough (tagged as Alpha).
Imo, it's working ok.

Seems like work is going on...Cool..

@SciFi1818 @ale5000-git @Rikk @leopard20

You can get a working prototype of a "material design" Yalp Store if you build the contemporary flavor. It has been there since 0.36. I've been reluctant to put it here or on f-droid because:

  • a lot has changed inside so it is bound to be less stable
  • not so much has changed outside so it is not very impressive. I've been trying to make Yalp Store "style-less" to make it have the default UI of the OS it runs on. So on devices with api>=21 it already conforms to the material design guidelines (except the drawer and the buttons mentioned below)
  • minSdkVersion is 14 now because of the android support library dependency so it cannot replace the default legacy flavor
  • apk size has doubled

Changes

  • Navigation drawer instead of the options menu
  • FABs in lists where there is a definite "main thing to do" e.g. "update all"
  • Details page - buttons no longer stick to the bottom.
  • Details page - "page background" pic, like in Play Store, if provided by the app developer.
  • Activity transitions between app lists and details.
  • minSdkVersion is 14 now because of the android support library dependency
  • since the style is enforced, it should look the same on all devices, so no holo ui on api<21

So the main change is the drawer. I tried to rip its sources from the support library like I did with some other things, but it is too tightly coupled to the rest, so I would have to rewrite a lot of it or include half of it. So I just included it as the dependency.

I'm planning to support both versions simultaneously so that newer devices would get the big "material design" version (if the device can run api>=14, it should not be a problem) and the old devices would get the small legacy version.

If you want to try it, you can:

  • try the alpha version on xda labs. I've put it there because it is possible to clearly mark it as alpha (incomplete) there while the stable is available too.
  • build it yourself - run Android Studio and choose contemporary in the build variants.
  • get it here com.github.yeriomin.yalpstore.plus_40.apk.zip

It is funny that this issue has appeared around the same time as #436 ...

@yeriomin

Here explain how to make Material Design apps compatible with API 8.

Also there can be <uses-sdk tools:overrideLibrary=" "/> in AndroidManifest.xml to override minSdk of libraries.

Also there is com.takisoft.fix:preference-v7 to fix problems of the official library.

@ale5000-git

make Material Design apps compatible with API 8.

A bigger apk is not an issue for API 14 and up but might be an issue for API 8. And since API 5 has to be supported, it still wouldn't allow me to build just one version. The stackoverflow answer you linked is a bit old. The support library had different minsdk back then, so its not a trick, just an older support library.

<uses-sdk tools:overrideLibrary=" "/>

This will make it build, and then crash... unless I test every feature on every device. This is very hacky.

Also there is com.takisoft.fix:preference-v7 to fix problems of the official library.

com.android.support:preference-v7 is not used.

Thank you for your input, but unless I reimplement the drawer from scratch, the support library with its minsdk will have to stay. Or am I missing something?

@yeriomin do you need some feedback about the Plus version?

  • When opening Yalp from a Google Play link (direct link to an app), options menu is not available; going to other page and back will make it appear.
  • Dark theme: menus have white background and white text, not readable.
  • App title over cover image is often white on white or black on black.
  • App cover image is displayed with wrong proportions, probably because the cover area is too tall; reducing the initial height of cover image would fit and look better.
  • Think about the versionCode for supporting both versions. Let's say
    40001 and 40002 where 40 = 0.40, 00 = build or minor version (0.40.0), 1=traditional 2=material
    Maybe would want to add extra field for architecture in the future.
    I like codes being the date, eg 2018050200

If you need screenshots I can post later, or if you are already aware of these things then okay.

do you need some feedback about the Plus version?

Sure.

@Rikk

When opening Yalp from a Google Play link (direct link to an app)

You mean the launcher link? This means the installed apps page is displayed. It has no options menu, navigation moved to the drawer.

App title over cover image

Either image or title should be displayed. Title fades in as you scroll bottom and hide the image. Are they displayed simultaneously?

App cover image is displayed with wrong proportions

What are your screen proportions? What is your device?

Think about the versionCode for supporting both versions.

Is it a question? legacy flavor has sequential version codes, nothing changed. contemporary flavor version code is legacy flavor version code plus 1000. See the build script.

Posting gifs explaining these. I question the necessity of fading title before it materialize into the top bar...
yalp cover issues
Look at this sequence:
missing menu
Images are at 100% of my screen (480x800).

@yeriomin: Since at the end both versions will be stable, I think it could be better to publish them on F-Droid with 2 different internal names (something like com.github.yeriomin.yalpstore.legacy for the non-material version) (and also different external names) so both could co-exist on F-Droid on separate pages.

Both should have update checks so putting them with different versions and same internal name could only confuse people and automatic update checks.

Aurora (@ https://gitlab.com/AuroraOSS/AuroraStore renamed from Galaxy @ https://github.com/whyorean/Galaxy) is a fork that accomplishes this.

@ale5000-git

publish them on F-Droid with 2 different internal names

Both should have update checks so putting them with different versions and same internal name could only confuse people and automatic update checks.

Their functionality will be identical, so I am planning to just build 2 apks with one package name. There will be no reason to use the legacy version for people with new devices, so they will automatically get the version with updated ui. I don't see a reason to make this an explicit choice.

Like here:
https://f-droid.org/en/packages/org.geometerplus.zlibrary.ui.android/

I personally like the simple style of the application. It just works. And quoting README's FAQ:

Q: Why isn't Yalp Store using Material Design? Is it going to?
A: No. The priority for Yalp Store is backwards compatibility and size. It works on every android since Android 2.0 Eclair. Implementing Material Design would require adding a heavy dependency and a lot of purely-UI code.

Just my two cents, the application is good :)

I dont see reson why we couldn't have material design because of 1% of old android users. Yalp store could be splitted into main app and legacy one for older devices.

Having to maintain two applications is far from optimal or even desirable in my opinion… Even though it could work out easily with different builds, I guess. No idea how this works on F-Droid.

@Lonami Thanks! It won't change much. Like I said, the only noticeable incompatibility with the material design guidelines is/was the navigation drawer.

@Golbinex You didn't read the issue, did you? ;)

I dont see reson why we couldn't have material design

You can have anything you want, but I think UI should not be a priority. And most of it is material-design-compliant anyway already.

because of 1% of old android users.

Because I started Yalp Store as a client for old devices. New devices work just fine with gapps, old devices don't. Yalp Store being open source is a secondary benefit.

Yalp store could be splitted into main app and legacy one for older devices.

See the discussion above. It is done already. Once enough feedback comes in to consider it stable, I'll add it to f-droid.

@yeriomin

Their functionality will be identical, so I am planning to just build 2 apks with one package name. There will be no reason to use the legacy version for people with new devices, so they will automatically get the version with updated ui. I don't see a reason to make this an explicit choice.

Can an user switch from one version to another and vice-versa without lost data?
If yes, then it will be good to have the same name.

I'm one of the rare users that mess continuously with the phone ;)
And I will sometime use the legacy version on a recent Android version.

@ale5000-git

Can an user switch from one version to another and vice-versa without lost data?

Like with other apps: up but not down. Android does not allow updates with version code lower than the installed. And f-droid apks must have the same package name and different version codes to be considered the same app by f-droid.

Can an user switch from one version to another and vice-versa without lost data?

Yes, but you need to use 'pm' in command-line or adb.

@yeriomin what do you need for debugging/fixing the title bar (black, white or dark) that overlaps the cover image?

@Rikk Send me any feedback from the Yalp Store UI, mention your name or this issue number anywhere. Bug reports contain device info, recent logs.

Android can downgrade while keep app data using adb install -r -d <path-of-an-apk>
I haven't yet tried but I hope it works.

is there material version of 0.42.

I just saw a new app on f-droid which is a fork of Yalp with Material :)
https://f-droid.org/app/com.dragons.aurora

On June 18, 2018 5:22:56 PM GMT+02:00, [email protected] wrote:

is there material version of 0.42.

--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/yeriomin/YalpStore/issues/439#issuecomment-398092461

--
Sent from my p≡p for Android.

@NitroNils Too bad the creator haven't provided a OTA zip file. I saw the issue but wish he would do it periodically, I could though but not sure how

@TPS Just a heads-up. Aurora has moved its repository.
You can find it here : https://gitlab.com/AuroraOSS/AuroraStore

@anunaym14 Fixed above, since @whyorean has clarified.

Contemporary flavor can now be found on the github releases page. Built by travis-ci with every release. Next step - f-droid (if there are not too many bug reports).

Sad, so material design is gonna be the default. Oh well, projects move forward. Thankfully this is a one-time application I don't run daily.

@Lonami Don't worry.

  1. It does not differ that much.
  2. Old design is not going anywhere.

Functionality is and will be the same for both versions. For the last 3-4 months I have been testing building both versions similtaneously and it works fine. I am not going to have to implement every feature twice.

Time to close this. Please open new issues if something is wrong with the contemporary version, but not the legacy one. Or if you have any suggestions concerning the new UI.

I don't know? Personally I am lost 😐 sorry

Was this page helpful?
0 / 5 - 0 ratings