ZINC :zinc: Android NFC cyborg multitool development

Not yet, soon, maybe ?

Open source ? I should probably use yours :sweat_smile: I’m not great at native code

1 Like

Looks like this is the library

With a sample app using it (?)

3 Likes

Wow, what a little detective:P

Yeah, Intra is the NFC library. Working on finalizing a sample application using it in the same Intra repo, as well as finishing up a usage guide. I got the installation guide written , but unless you’re just super familiar with Hilt DI and MVVM, it’d be a bit of a tough start using it without a usage guide. Only the Library module is hosted on Jitpack, so importing it as a gradle dependency in your app does’t include everything from the example application as well.

Supra is actually a really early Compose UI Design System me and my wife have been working on lately. We’re gonna move both under official VK repos soon. In fact, the only reason they’re public right now is cause I didn’t want to pay for Jitpack yet:P

2 Likes

Ah well sorry to preempt your official release :sweat_smile:

I’m interested to see your plans for Supra. Is it just messing around with UI design or do you have larger ambitions for it? I assumed it was related to Intra given the name, similar development timeline, and the hilt dependency :grin:

Nah, you’re good hoss

Yeah, Intra is the communications layer basically, whereas Supra is the frontend equivalent. Just fun UI experiments, components, theming, etc. Really I was just tired of making the same damn UI components over a d over again, and figured they could use a common home.

Intra is ready for use. In fact, I’ve ported 3 of the projects we have for VK to use it so far. Apex Manager now uses it (in an update that’s just got a couple little bugs left before release), Spark Actions uses it, and another project that’ll be releasing very soon that we’re really excited about;)

Supra on the other hand is very very fresh. It’s in its early stages for sure, and is gonna need some work before it’s really ready. It’ll also have an example app so you can go through and visually see all the different UI components and how they work.

If anyone has any UI suggestions or fun experiments we’re always open to suggestions

3 Likes

Obligatory TM :laughing:

Seriously though, can’t wait to see what you’ve been working on!

1 Like

No idea what any of these are :joy: I’m not an Android dev at all so I’m still at the stage of wondering who tf gradle is and why he’s always angry at me…
Since I’m working with Unity I don’t think I would be able to use that anyway since there are some specificities to making Unity packages (also I like to figure things out) but I’m totally going to check out the source and see how far I am from respectable android java code :sweat_smile:

Dev life goals :arrow_up:

1 Like

For real, I’m a lucky dude. She’s the coolest <3

Yeah, it may not be a compatible pattern in that case. NGL, it’s super impressive that you made Zinc in unity. I wouldn’t know the first thing about that. Making an Implant Android app in a graphics engine is metal (deserves the name Zinc I guess!).

2 Likes

Also, yeah, Gradle is a cold cold mistress…I swear it’s taken years off my life

1 Like

To me it’s a lot easier than android studio :sweat_smile: I’ve worked on it for 10+ years and since Zinc involves 3D, games and AR it only makes sense.
Also I’m not super fan of the whole android environment. Maybe because I never took the time to learn properly but it feels very convoluted with layers upon layers of stuff that is never intercompatible.

Like I open Android studio to do a simple task, it tells me to update some random thing I’ve never heard of. So I do. And now I get a bunch of errors about gradle being a demon or whatever. So I try to fix them only making things worse and worse. And in the end I spent the entire day figuring out how to build instead of coding.

And then the code itself is so convoluted. It feels like they want to use design patterns so much that the code isn’t accessible to humans anymore.

All you want is to do

NFC.read();

But instead you end up doing whatever this is:

    protected void initialize(){
        NfcManager nfcManager = (NfcManager) getSystemService(Context.NFC_SERVICE);
        nfcAdapter = NfcAdapter.getDefaultAdapter(this);
        if (nfcManager == null) {
            errorToUnity("NFC Manager not initialized ...");
            return;
        }
        if (nfcAdapter == null) {
            errorToUnity("NFC Adapter not initialized ...");
            return;
        }
        try{
            pendingIntent = PendingIntent.getActivity(
                    this,
                    0,
                    new Intent(this, NativeNFC.class).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP),
                    PendingIntent.FLAG_MUTABLE
            );
        }catch (Exception e){
            errorToUnity("Pending intent not initialized: " + e.getMessage());
            return;
        }

        deepIntentFiltersArray = new IntentFilter[]{new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED)};
        ndefIntentFiltersArray = new IntentFilter[]{new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED)};
        techListsArray = new String[][] {
                new String[] { NfcA.class.getName() },
                new String[] { NfcB.class.getName() },
                new String[] { NfcF.class.getName() },
                new String[] { NfcV.class.getName() },
                new String[] { IsoDep.class.getName() },
                new String[] { Ndef.class.getName() },
                new String[] { MifareClassic.class.getName() },
                new String[] { MifareUltralight.class.getName() },
                new String[] { NfcBarcode.class.getName() },
                new String[] { NdefFormatable.class.getName() }
        };

That’s fair. I will say, the old way of Java + XML was definitely something you had to wrestle with. I also wasn’t really a fan of the stack at that point. Over the last few years though, Google’s released a new UI framework called Compose that is absolutely fantastic. It’s a declarative UI written in Kotlin, which is the “new” preferred language for Android development now.

I’ll say the difference is huge. Kotlin + Compose is absolutely fantastic. Way better than the Java flow, and way more interoperable. That said, yeah, if you wanna do anything 3D, you’ll need something beyond the standard tools, and it looks like you’ve got that part mastered;)

2 Likes

Any way I can send you $10.99 and get an APK to test? I run Graphene OS and don’t use Google Play Store. Just Aurora and F-Droid.

2 Likes

I guess I did not annouce it here, here is the post from Patreon:

Better tiers and downloadable apks.

Hi all, I’m in the process of refreshing this Patreon now that the PICOs are not sold here anymore.

You might be able to see already that I’ve changed the tiers and the rewards.

Indeed I plan on making some of my projects available waaay before they are published as downloadable content here on Patreon!

For example, some people have mentioned they would like to try my mobile game Hooome even though it’s far from finished. In cases like these, I will upload an APK as a downloadable file in my Patreon shop and all tiers from 9$ and higher will get it free. I can then push new versions occasionally until the game gets published.

To be clear, this doesn’t grant you the final published product if it were to be paid but allows you to try it out all along the development, like early access.

I’ll be doing this for games, apps, books, or whatever I work on at the moment.

I am also considering putting APKs and files of published products on there too (only free with the 100$ tier) so that people who don’t want to use platforms like Google Play can get them here.

Why am I not using Google Play’s beta and closed channels? They suck, people get confused and every action takes a couple of days to take effect. They are not helpful for the small-scale sharing that we do here.

TLDR:

  • My published apps are available on the Patreon shop as APKs for those who are not using Google play.
    I also have very early builds of upcoming projects on there.

  • Some Patreon tiers get the early builds free. Top tier gets everything free

  • They will be kept up to date.

@vepr I’m not done uploading everything but Zinc is already on there.
I set the price pre-taxes so I might need to adjust it to reflect the store price, lmk.
If Patreon is a platform you dislike I can do paypal but I would rather keep things simple

1 Like

I used Patreon and am now running Zinc. Thank you.

2 Likes