Posts in Mobile (20 found)
Ivan Sagalaev 1 weeks ago

Pet project restart

So what happened was, I have developed my shopping list to the point where it got useful to me , after which I lost interest in working on it. You know, the usual story… It was however causing me enough annoyances to still want to get back to it eventually. So a few weeks ago, after not having done any programming for a year, I finally broke through the dread of launching my IDE again and started on slowly fixing the accumulated bitrot. And through the last several days I was on a blast implementing some really useful stuff and feeling the familiar thrill of being in the flow . Since I was mostly focused on making the app useful I didn't pay a lot of attention to the UI, so most of the annoyances were caused purely by my not wanting to spend much time on fighting Android APIs. Here's one of those. The app keeps several shopping lists in a swipe-able pager, and at the same time swiping is how you remove items from the list while going through the store. The problem was that swiping individual items was really sensitive to a precise finger movement, so instead it would often be intercepted by the pager and it would switch to the next list instead. That's fixed now (with an ugly hack). But the biggest deficiency of the app was that it didn't let me get away from one particular grocery store that I started to rather dislike. You might find it weird that some app could exert such control over my actions, but let me explain. It all comes down to three missing features… The central feature of my app is remembering the order in which I buy grocery items. This means I need a separate list for every store, as every one of them has a different physical layout. By the time I was thinking of switching to another store I already had an idea about a new evolution of the order training algorithm in the app, and a new store would be a great dogfooding use case for it. So I've got a sort of mental block: I didn't want to switch stores before I implemented this new algorithm. Over some years of using the app with a single store I've been manually associating grocery categories with products ("dairy", "produce", etc.). They are color coded, which make the list easier to scan visually. But starting a new list for another store meant that I would either need to do it all again for every single item, or accept looking at a dull, unhelpful gray list. What I really needed was some smart automatic prediction, but I didn't have it. I usually collect items in a list over a week for an upcoming visit to the store, and sometimes I realize that I need something that it simply doesn't carry, or my other errands would make it easier to go to another store. At this point I'd like to select all the items in a filled-up list and move them to another, which the app also couldn't do. See, it all makes sense! Now, of course it wasn't a literal impossibility for me to go to other stores, and on occasion I did, it just wasn't very convenient. But these are all pretty major deficiencies, and I'm not ready to offer the app to other people without them sorted out. Anyway… Over the course of three weeks I implemented two of those big features: category guessing and cross-store moves. And I convinced myself that I can live with the old ordering algorithm for a while. So now I can finally wean myself off of the QFC on Redmond Way (which keeps getting worse, by the way) and start going to another QFC (a completely different experience). All the categories (item colors) you see in the screencaps above were guessed automatically. My prediction model works pretty well on my catalog of 400+ grocery items: the data comes from me tagging them manually while doing my own shopping these past 4 years. And this also means, of course, that it's biased towards what I tend to buy. It doesn't know much about alcohol or frozen ready-to-eat foods, for example. I'm planning to put up a little web app to let other people help me train it further. I'll keep y'all posted! One important note though… No, it's not a frigging LLM! It's technically not even ML , as there is no automatic calibration of weights in a matrix or anything. Instead it's built on a funny little trick I learned at Shutterstock while working on a search suggest widget. I'll tell you more when I launch the web app. When I started developing the app, I used the official UI toolkit documented on developer.android.com. It's a bunch of APIs with a feel of a traditional desktop GUI paradigm (made insanely complicated by Google "gurus"). Then the reactive UI revolution happened, and if you wanted something native for Android, it was represented by Flutter . Now they're recommending Compose . I'm sure both are much better than the legacy APIs, but I'm kind of happy I wasn't looking in this space for a few years and wasn't tempted to rewrite half the code. Working in the industry made me very averse to constant framework churn. I'm not making any promises, but as the app is taking shape rather nicely, I'm again entertaining the idea of actually… uhm… finishing it. Which would mean beta testing, commissioning professional artwork and finally selling the final product. The central feature of my app is remembering the order in which I buy grocery items. This means I need a separate list for every store, as every one of them has a different physical layout. By the time I was thinking of switching to another store I already had an idea about a new evolution of the order training algorithm in the app, and a new store would be a great dogfooding use case for it. So I've got a sort of mental block: I didn't want to switch stores before I implemented this new algorithm. Over some years of using the app with a single store I've been manually associating grocery categories with products ("dairy", "produce", etc.). They are color coded, which make the list easier to scan visually. But starting a new list for another store meant that I would either need to do it all again for every single item, or accept looking at a dull, unhelpful gray list. What I really needed was some smart automatic prediction, but I didn't have it. I usually collect items in a list over a week for an upcoming visit to the store, and sometimes I realize that I need something that it simply doesn't carry, or my other errands would make it easier to go to another store. At this point I'd like to select all the items in a filled-up list and move them to another, which the app also couldn't do.

0 views
iDiallo 2 weeks ago

The App Developer's Attachment Issues

When browsing the web, I still follow rabbit holes. For example, I will click on a link, read an article, find another link in the body, follow that one as well, and keep on going until I get lost in the weeds and appear in wonderland. When I'm reading through my phone, I often have to go back to the browser history to see the trail of websites that lead me to my destination. But sometimes, I just can't find my way back. Why? Because somehow, I wasn't reading through the web browser. I was browsing through webview. So when you are on instagram and click on a link shared by a friend. The page loads instantly, but something feels off. You are browsing the web, yet you don't see the familiar browser tabs or address bar. You are in a webview . Why webview and not your favorite browser? Well, this is what I call App attachment issues. App developers don't want you to leave. And webview is the invisible fence they use to keep you tethered. When an application loads content within an in-app browser (a webview) you are, technically, using the web. It's running the same rendering engine as a dedicated browser. But the app's sole purpose for doing this is to silo you. They want to maintain control over your experience, ensuring you are never truly free to roam the open internet. The benefit for the developer is that no matter what page you browse, you are perpetually one button click away from being back in their app. It's a mechanism for user retention, a digital leash. Every company, from social media giants to news aggregators, is trying to fit you into their specific bucket, convinced that if they let you leave, you might not come back. They want to maintain that control over your experience, even when you are outside their reach. On Android, this is super annoying. You might be able to click links and navigate from the initial website to a completely different, unrelated one, but you often cannot manually change the URL. You are trapped in the current browsing flow, unable to jump to a new destination without first leaving the app or performing a dedicated search. Why are you still under the app's thumb if you're surfing the public web? The answer is always control. The web is a dangerous place. What if you click on the wrong link and your device gets compromised? We can't protect you in this case. At least that's what it feels like when clicking on external links on some websites. For example, on LinkedIn when you click an external link, you are often greeted with a warning message like this: This link will take you to a page that's not on LinkedIn Because this is an external link, we're unable to verify it for safety. On the surface, it appears to be a helpful security measure. The platform is protecting you from the big, bad internet. But the only thing they are truly protecting you from is leaving their app. If the link was already shared by a contact or surfaced on their platform, the implicit due diligence should have been done. Serving up a blanket safety warning for any external link, even those to major news organizations or well-known websites, is just a friction point to discourage you from leaving. It's a psychological barrier designed to make you hesitate, keep you inside the known confines of their platform, and reinforce their control. This security warning is nothing more than the final, passive-aggressive plea in the app's campaign against your freedom. If the in-app silo was just the web, but within the app, I wouldn't complain. But while developers are focused on retention, the user experience suffers in some infuriating ways. The webview is a fundamentally broken browsing experience for three core reasons: The most frustrating drawback is the lack of permanence. Your browsing history is at the mercy of the developer. They can choose to record it, or not record it. And you will be none the wiser until you are trying to find that article you read just this morning. With my rabbit hole style of browsing the web, I often stumble upon great articles, helpful tools, or even products that I mean to return to. But if any of those pages were viewed under a webview, they vanish without a trace. Related to the missing history is the risk of accidental loss. You might be deep into an article, hit the back button to navigate one step back on the site, and instead, the entire webview collapses, dumping you unceremoniously back into the main app feed. Because no history was recorded, there is no way to return to the page you were just on. The article is simply gone. There is a common counterargument that says, "Most apps have a setting to disable webview and open links directly in your full browser." But two points to this. 1. Most people don't ever change the default settings. 2. Why is this even an option to select? If the webview uses the browser engine anyway, why should the default setting be the one that compromises the user's web experience? Users do not dive into granular settings menus. The path of least resistance is the path most taken. By defaulting to webview, developers are prioritizing their retention goals over basic utility. The entire architecture of the web is built on freedom, open access, and a unified browsing experience. By forcing a dedicated web environment, developers are fragmenting the internet and making our lives slightly harder. I'm sure there are some metrics out there that say “using in-app webview increases engagement by x%.” But for n=1, aka me, it only increases my disengagement. All I can say to developers is: It's okay to let go. The remedy for your attachment issues is user freedom. When I click a link, I expect to be in a full browser, with a permanent history, a functional address bar, and true control over my destination. It's time for applications to trust users, respect the open web, and stop trapping us in the confines of their digital cages. For users, next time you click a link, look for that small icon, often a compass, an arrow, or an ellipsis, then choose to open in browser. It's your internet. It's okay to leave the app. Or even better, never download the apps .

0 views
James O'Claire 2 weeks ago

Where are All the AI Generated Native Android & iOS Apps?

I’ve been wanting to keep an eye on AI generated apps to see what kind of SDKs and libraries they end up using for AppGoblin’s massive resource of 100k+ apps and SDKs. So for the past year I’ve clicked/followed a few companies with the goal downloading the actual apps that get created. As I did my most recent rounds checking the “Examples” and “Showcases” I think I can say these apps are just not being delivered in that final native form . To be clear there are lots of web app demos, but when it comes to actual apps landing on the Play and App Stores I’ve found few to no clear examples. Looking for links to native apps in the various company communities/Discords I see a few reasons: As I was writing, this I’m reminded that the ‘native’ term is a bit ambiguous. Most of these companies seem to do Expo/JS related apps into native apps. For this article, I’m just looking for anything that has an app on an app store, as I’d like to later breakdown the use of Expo or other tools. fastshot.ai -> YC Backed, newer so worth giving them some time. Showcase is mostly empty with only one screenshot so far on Discord. a0.dev -> The site has a dozen very high quality examples of web apps. The links to them is to download their own app though. The only examples on the App Stores seem to be from July by the developers. replit.com -> Dozens of real examples of web apps but I couldn’t find any that had Android or iOS apps made by replit. Replit was quite early, launching in February 2024 so I think if there’s any examples this might be the easiest to find. could.ai / dashwave.io / gobuildmy.app -> These ones all have pricing pages but don’t even have examples or demo or showcase pages. I think we’re all coming to see that AI coding tools are good for rapid prototyping but struggling to deliver magic results . That being said, people are using these tools, likely mostly as prototypes and later transitioning to managing the apps directly. If anyone has used these tools and wants to share their apps please reach out. You can also request SDK scans of apps on AppGoblin for free. People are building proof of concepts, and like any project, as you get closer to the reality, the dream gets a bit less rosy. People are getting real value by actually implementing their ideas into apps and thinking through the actual use case. People once finished their app, do not want to publish the fact that it was vibe coded or used a specific company to build. The last mile, from fully working demo to production is hard for AI .

0 views
Karboosx 2 weeks ago

Improving Train Meal Ordering Systems Without Internet

Train meal ordering apps require internet, but trains often don't have it. Here's how to make them work offline using local servers and JWT authentication

0 views
neilzone 1 months ago

Librephone and the need for more Freedom for mobile computing

The Free Software Foundation has announced a project called “Librephone” , and I am quite excited about it. The scope of the project is narrow, which is superb. It is aimed at tackling the proprietary firmware and binary blobs which are currently necessary, even when one wants to use an alternative OS on a phone. I have a strong preference for Free software, but I have also accepted the proprietary blobs to be able to use existing hardware. I would much rather that they were not there though, and so the idea of a mobile computing device / phone, running only Free software, is attractive to me. I suspect that this is a complicated thing to achieve, even just for one device, let alone the plethora of devices out there. I am enjoying using postmarketOS on a OnePlus 6 , and it is the best modern mobile Linux-on-a-mobile-device experience that I have had so far. But I had to pick the phone carefully, and, even then, not all hardware is supported fully. It would be amazing if I could do this on more modern hardware. Fundamentally though, user choice, and software and device freedom, on mobile devices is not merely a technical problem, or the preserve of geeks and nerds. It is an environmental problem, as we - those of us who live on Earth - cannot afford to keep abandoning perfectly good hardware just because its manufacturer has stopped support it to enable it to sell the latest thing. It is unsupportably wasteful. I love the ability to install Linux on an old laptop and continue to use it, once others have discarded it. It would be amazing if the massive pile of now-aged abandoned BlackBerry devices could be re-used, and all number of other older but still functional devices. It is a privacy problem too, where one might reasonably wish to turn to Free software to avoid surveillance-based business models, or the unwarranted exercise of control over what one can run on one’s own device. And so the problem is also a regulatory one, with scope (indeed, a necessity) for regulatory/legal intervention, to protect consumer interests. In particular, in terms of locked bootloaders, as well as organisations seeking control over who can write and distribute software for devices, or what software a user can choose to install. The Librephone initiative is a great idea, and part of a much bigger, urgent, problem, and I wish them much luck.

0 views
Herman's blog 1 months ago

Smartphones and being present

I read an article yesterday, stating that on average, people spend 4 hours and 37 minutes on their phones per day 1 , with South Africans coming in fourth highest in the world at a whopping 5 hours and 11 minutes 2 . This figure seems really high to me. If we assume people sleep roughly 8 hours per day, that means that one third of their day is spent on their phones. If we also assume people work 8 hours per day (ignoring the fact that they may be using their phones during work hours), that suggests that people spend over half of their free time (and up to 65% of it) glued to their screens. I never wanted to carry the internet around in my pocket. It's too distracting and pulls me out of the present moment, fracturing my attention. I've tried switching to old-school black and white phones before, but always begrudgingly returned to using a smartphone due to the utility of it. The problem, however, is that it comes with too many attention sinks tucked in alongside the useful tools. I care about living an intentional and meaningful life, nurturing relationships, having nuanced conversations, and enjoying the world around me. I don't want to spend this limited time I have on earth watching short form video and getting into arguments on Twitter. This is what I enjoy. Picture taken yesterday in Scarborough, South Africa. I've written at length about how I manage my digital consumption, from turning off notifications to forgoing social media entirely . The underlying premise here is that if you're trying to lose weight, you shouldn't carry cookies around in your pockets. And my phone is the bag of cookies in this metaphor. We're wired to seek out distraction, novel information, and entertainment, and avoid boredom at all costs. But boredom is where creativity and self-reflection do their best work. It's why "all the best ideas come when you're in the shower"—we don't usually take our phones with us into the shower (yet). According to Screen Time on my iPhone, on average I spend 30 minutes per day on it, which I think is reasonable, especially considering the most-used apps are by-and-large utility apps like banking and messages. This isn't because I have more self-control than other people. I don't think I do. It's because I know myself, and have set up my digital life to be a positive force, and not an uninspired time-sink. There are many apps and systems to incentivise better relationships with our phones, mostly based around time limits. But these are flawed in three ways: The only way I've found to have a good relationship with my phone is to make it as uninteresting as possible. The first way is to not have recommendation media (think Instagram, TikTok, and all the rest). I'm pro deleting these accounts completely, because it's really easy to re-download the apps on a whim, or visit them in-browser. However some people have found that having them on a dedicated device works by isolating those activities. Something like a tablet at home that is "the only place you're allowed to use Instagram". I can't comment too much on this route, but it seems reasonable. My biggest time sink over the past few years has been YouTube. The algorithm knew me too well and would recommend video after engaging, but ultimately useless video. I could easily burn an entire evening watching absolute junk—leaving me feeling like I'd just wasted what could have otherwise been a beautiful sunset or a tasty home-cooked lasagne. However, at the beginning of this year I learnt that you can turn off your YouTube watch history entirely, which means no recommendations. Here's what my YouTube home screen now looks like: Without the recommendations I very quickly run out of things to watch from the channels I'm subscribed to. It's completely changed my relationship with YouTube since I only watch the videos I actually want to watch, and none of the attention traps. You can turn off your YouTube watch history here , and auto delete your other Google history (like historic searches and navigation) here , which I think is just good practice. I also used my adblocker, AdGuard on Safari which has a useful "block element" feature, to block the recommended videos on the right of YouTube videos. I use this feature to hide shorts as well, since I have no interest in watching them either, and YouTube intentionally makes them impossible to remove. If you're interested in a similar setup, here are the selectors I use to block those elements: The only media that I do sometimes consume on my phone are my RSS feeds, but it's something I'm completely comfortable with since it's explicitly opt-in by design and low volume. While I still have the twitch to check my phone when I'm waiting for a coffee, or in-between activities—because my brain's reward system has been trained to do this—I'm now rewarded with nothing. Over time, I find myself checking my phone less and less. Sometimes I notice the urge, and just let it go, instead focusing on the here and now. I think that while the attention-span-degrading effects of recommendation media are getting most of the headlines, what isn't spoken about as much is the sheer number of hours lost globally to our phones (3.8 million years per day, according to my back-of-the-napkin-math). And while people may argue that this could involve productive work or enjoyable leisure, I suspect that the vast (vast!) majority of that time is short-form entertainment. My solution may sound overkill to many people, but I can say with absolute certainty that it has turned me into a more present, less distracted, and more optimistic person. I have much more time to spend in nature, with friends, or on my hobbies and projects. I can't imagine trading it in for a tiny screen, ever. Give it a try. Happily on the beach for sunset. I'm an adult, I know how to circumvent these limits, and I will if motivation is low. Time limits don't affect the underlying addiction. You don't quit smoking by only smoking certain hours of the day. The companies that build these apps have tens of thousands of really smart people (and billions of dollars) trying to get me hooked and keep me engaged. The only way to win this game isn't by trying to beat them (I certainly can't), but by not playing.

0 views
neilzone 1 months ago

Notes on running postmarketOS on a OnePlus 6

I am experimenting with postmarketOS on a OnePlus 6. This is not my first foray into a Linux-mobile device; I have previously used postmarketOS on an old Samsung tablet, as well as Mobian, and the version of Debian that one could install onto the Planet range of PDAs. And, of course, many years ago, a Sharp Zaurus. Even though I am currently a pretty happy user of GrapheneOS, I’m keen to explore options which are further removed from Google. tl;dr: to make this work for me, I am going to need to make a lot of compromises. I am not sure if I am willing to do that or not. But I am enjoying the experiment. These are mainly some working notes. I wrote up installing postmarketOS with full disk encryption . The postmarketOS wiki is useful. I am avoiding Waydroid. Since one of the goals of this experiment is to see about move away from Android, using Waydroid seemed like cheating. I might play with it at some point but, for now, I am not looking at Android applications via Waydroid. As part of my preparation for this experiment, I looked at what apps I actually needed, and what services I could use via the web browser instead. Surprisingly, most of the parking apps that I use seem to work fine in a browser. I am not 100% sure of this - I haven’t tried them all yet - but then most of the car parks I use on a regular basis still have payment machines anyway. Banking websites generally suck, but none of my banks require - as far as I can tell - an app, as long as I’m willing to log in to the website using a card reader. I have not yet uninstalled the banking apps from my other phone, so I don’t know what will happen when a payment requires verification. Home Assistant works fine in the browser, but it does mean that my device location is not available (since this requires the app). So Sandra cannot tell where my phone is (and thus, most likely, where I am), which is a bit of a pain. I can control music around the house using the Lyrion Media Server’s web interface. Easy. I haven’t used shopping-related apps for ages, so no change here. I just use the websites. Wi-Fi works fine. I generated a WireGuard config on one of my WireGuard servers, and imported the resulting text file on the OP6. It worked, as expected. To make it connect automatically, I used: to identify the WireGuard tunnel, and then to connect automatically. It connects automatically following a device reboot. My Bluetooth headphones, and a Bluetooth keyboard, paired, connected, and work. Geary works fine, although it doesn’t appear to support GPG/PGP, which is a shame. Using GNOME’s “Online Accounts” functionality, I could connect to my Nextcloud instance, for contacts and calendar. This worked more easily than I was expecting. I bought a SIM, on the Three network (UK), put it in, and restarted the phone. It detected the SIM card automatically on reboot. SMS arrived immediately. Lots of them. I enabled mobile data from within GNOME settings (just as I do on my laptop, to control the internal modem) and it Just Worked. Traffic gets routed over the WireGuard tunnel. I can make a phone call, and I can receive a phone call, when the phone is unlocked or not. However, the stack is not particular stable: sometimes I can make and receive calls, and sometimes I cannot. There appears to be a fun bug, for me to investigate: Bitwarden is in my “sort of working” list. It works, as a Firefox add-on. I’d like to have a “desktop” way of accessing it, and I have yet to work that out. The cameras both work, after a fashion, but not if you want high quality images or video. I bought a small compact camera on eBay a while back, in the expectation that this was going to be a problem. It is nowhere near as convenient, of course. When I cycle or drive somewhere new, I tend to use my phone for navigation. Using the Maps application, I can plan a route, but I don’t get navigation instructions. This is a bit of a pain, and I don’t have a good alternative. The default SMS/XMPP/Matrix application, Chats, supports XMPP, but I cannot log in to my XMPP server (Snikket) using it. I have not dug into why this is the case, as I don’t think that I’ve got anything strange set up. Dino does work for messaging and file tranfer, and doesn’t look too bad on the smaller phone screen. But, for some undiagnosed reason, I don’t get notifications for incoming messages, and audio/video does not work, as calls fail to establish. Other people say that audio works for them, so I am not sure why it is not working for me. I need to look into this. I have not found a good option for this. Possibly some kind of Signal/XMPP bridge. I was not expecting this to work. It is a bit of a pain typing in a passphrase each time to use my phone, but oh well. I receive a call on the OP6 I answer the call while the OP6 is locked I hang up the call on the OP6 or the other end hangs up the call I unlock the OP6 it calls the number which had just called me :)

0 views
Cassidy Williams 2 months ago

Using Notebook Navigator and Cupertino in Obsidian

I’ve written before that I use Obsidian as my “second brain” tool, but lately I’ve been experimenting with my setup to make it better, particularly on mobile. I’ve written before about how I publish to my blog from Obsidian , and I want to make that smoother in general, too. And y’all… the Notebook Navigator plugin + Cupertino theme combination is the best I’ve tried in a while. I’m currently typing this on my iPad, and I also regularly write notes on my phone. Before it was… just okay? It felt like a very obvious non-native app experience. Which is, again, okay. But anyway, this combination feels very native on mobile, which is a game-changer (I know it shouldn’t be, but I’ve accepted that aesthetics matter for my own motivation)! Notebook Navigator specifically changes how you… navigate your notes. Aptly named. I particularly like that you can see what tags a note has without having to open it, and there’s ways to enable when you last opened/edited a note, an easy way to see your tags, and some icon options as well. I have my own theme I’ve made, Cardstock , and I’m going to be borrowing some ideas for that from Cupertino to improve it. There’s still some small spacing things on iPad that aren’t perfect in Cupertino, but this is the smoothest my mobile typing experience has been in a while. I still like Cardstock for a computer, and I’ll be updating it!

0 views
Tenderlove Making 2 months ago

Apple Photos App Corrupts Images

The Apple Photos app sometimes corrupts images when importing from my camera. I just wanted to make a blog post about it in case anyone else runs into the problem. I’ve seen other references to this online, but most of the people gave up trying to fix it, and none of them went as far as I did to debug the issue. I’ll try to describe the problem, and the things I’ve tried to do to fix it

1 views
Manuel Moreale 2 months ago

RIP my minimal phone setup

As you probably know by now, thanks to the infinite supply of news on the subject, today new OS versions came out for Apple gadgets. Yes, it’s the one with that idiot Liquid Glass. Yes, I hate it. No, I don’t hate it because it’s different from what I was used to before. And you know why? Because I was hating the previous one as well. «Why are you still using it then?» I hear you say. Because I have no good alternatives. Most of the tools I use are developed exclusively for this ecosystem, and those are tools I love to use. Plus, Windows is not any better, and I don’t have time to deal with anything Linux. So yeah, it is what it is. I’ll get used to all this nonsense on MacOS, from the insanely big rounded corners to the awful design choices. Something I won’t get used to, though, is the home screen on my phone. For the past couple of years, I was running with a setup that looked like this: This empty screen was achieved with a workaround, using a combination of a purposely designed wallpaper and a few accessibility settings. And I loved it. The fact that my home screen was empty was making me so happy. The only way I was interacting with my phone was by swiping down and using Spotlight. But now, in their infinite wisdom, the fine folks at Apple have decided that everything on this stupid device needs to show fake reflections, which means the empty dock is now back because fuck me for using the phone in a weird way, I guess. Thank you, Tim Apple. Thank you for keeping RSS alive. You're awesome. Email me :: Sign my guestbook :: Support for 1$/month :: See my generous supporters :: Subscribe to People and Blogs

0 views
James O'Claire 2 months ago

Mobile Trackers your Ad-Blocker Doesn’t Know About

This is the full list of the main API endpoints that apps send data to. This is across ~70k android apps and the smallest endpoint has about ~90 apps that send data to it, meaning it’s unlikely to be an app developer’s domain. Then I checked whether these domains were in any of: https://github.com/StevenBlack/hosts , https://easylist.to/easylist/easylist.txt or https://easylist.to/easylist/easyprivacy.txt . I was surpised how many were NOT in any of the lists, over 1/3 at 127 and individually the blocker lists only had about 1/3 of these domains. I’m not currently going to open PR tickets for these domains, as the scale that I collected these at could easily contain some perfectly acceptable use cases. I’ve tried to remove those that I recognize as acceptable so far. Here’s a Google sheet of the same data (feel free to leave comments).

0 views
ava's blog 2 months ago

my wife and her dumbphone

My wife has always used a dumbphone and has never actually owned a smartphone. I gave her a tablet two years ago to do at least some of the things our modern environment now ask us to be able to do. Still, the tablet decidedly doesn’t have mobile capabilities and needs WiFi. It is bigger, harder to take with you, clunkier to use and hold, and mostly disconnected while outside unless there is public WiFi, which is still rare where we live. Of course, I know how she handles her daily life like this, but instead of writing from my outside perspective, I wanted to give her the opportunity to say it herself. I asked for questions and she has now answered them. Thanks to everyone who sent an email! The response was more than I expected. Some questions were duplicates, so I tried my best to summarize. I'm sorry if I missed any. :) Is it an old phone or something similar to the Minimal Phone? Sorry to be so stereotypically Historian already, but: it depends! By modern Phone Standards, yes definitely old, I got it new in 2018 and the Model came out in 2017, so I have had it for 7 Years now. It is a Nokia 105 though, so despite its Age it already explicitly is retro Style and not genuinely old in that Sense. Before that I just cycled through my Relatives’ discarded Phones for a few Years since the last new Phone I had broke – in 2011, I think. How much is your monthly bill for that dumbphone? Given that I use it so little, it never made Sense for me to get a Subscription, so I have been relying on prepaid since I got it. I just have 10 or 15 Euro transferred to my Phone whenever I get below 1 Euro and then slowly use that up over the next few Months, on Average I suppose it is around 2 – 3 Euro a Month? Why have you never made the switch to smartphones? In Honesty, it is a wild Mix of Convenience, weird mental Hangups and conscious Refusal of the negative Aspects of the Technology. In the Beginning, it was simply a Rejection of new Technology, which I clung to. In the Meantime, it grew into a very conscious Thing, because I already spend too much Time online and do not think mobile Internet would be good in that Regard; but also the other Issues like Privacy, Data Security, ethical Questions around Resources, &c. &c. play an important Role for me. While not relying on a Smartphone, I think I can prioritize these Aspects more as Reasons not to get one now and view them more honestly. Admittedly, Stubbornness is another Motivation too. What other devices do you have (tablet, laptop...)? I do have a Tablet my Wife gifted me that I use a lot. I also take Advantage of public WiFi, if there is one, which People sometimes call hypocritical, given I refuse getting a Smartphone to have less online Access (among other Things), but I do not think that is too contradictory. After all, a Smartphone would make it worse than it already is. Besides that I have a Laptop (refurbished), a Switch (inherited) and a Steam Deck (gifted), but no other modern Devices that qualify for this Question. Why not just use a smartphone with the bare-bones apps? As mentioned earlier, my Motivations are a colorful Mixture of Things and using a Smartphone restricted to the bare Minimum would only cover a small Portion of those, to the Point that it would revert the Question to „Why use a Smartphone at all then?“ Have you had moments where you came close to giving in and getting one? No, not all actually. Do you ever feel cut off from anything because you don’t have a smartphone? In some Way. Not so much that I feel left out and it making me unhappy about not having one, but more so that it frustrates me and irritates me that it is treated as a given. I am less averse to social Media than Ava, but if something for Entertainment is only or primarily accessible via Smartphone, I normally already have little Interest; either because it is off-putting to me, or just due to Lack of Interest. So these Situations merely leave me shrugging usually. The other Kind, where necessary Services are locked behind Smartphones or at least App-based Technology, deeply annoys me though. Not just for my own Sake, but as a general Accessibility-Issue. Be it checking in at Places via QR-Code in the early Pandemic Years, Restaurants with no printed Menus, App-Reliance for offline Events or one of the worst Offenders – the App-controlled Package Lockers. The latter are not just App-based, which I could begrudgingly deal with with my Tablet, but actually require mobile Internet. Despite all Requests never to drop off something there occasionally Deliveries still end up there and Ava has to handle that for me every Time. What are People supposed to do, who have no Access to someone else to do that for them? This System is so infuriatingly inaccessible, DHL even won an Award for exceptionally bad Customer Service for it a few Years ago. If someone gifted you one or won one, would you use it? No, and given that everyone I am close enough to for such an expensive Present knows about my Stance on it, I would be very disappointed in their Disregard for my Wishes. For the second Part, I started using the Internet roughly twenty Years ago, if anything stated I won a new Smartphone I would ignore it as Spam without further Thought haha. What reaction do you dislike, or even hate the most when people around you find out that you don't have, and have never had, a smartphone? There are not really that many different Reactions, if there are any at all. It is usually something in the „Oh, okay!“ to „Oh, wow!“-Range, rarely a „Isn’t that really difficult today?“ and I would not say that any of these really bother me that much. Usually People are not invested in the Topic enough either to linger on it that much. Far more annoying is when People who have known me a While and know about my Phone-Situation and the Motivations behind it and yet keep suggesting I should switch. How do you navigate while on the go or driving without navigation apps? I am very thorough in preparing for reaching new Locations in Advance, if I can not rely on having someone with GPS with me. When I want to make really sure, I make Screenshots on my Tablet, or rarely even print it out when I have easy Access to a Printer. Since I got my Tablet, I also use the Offline-Maps Feature and just look up Stuff there, finding my Way with a Map, but no active Navigation is no Problem. Of course that is not really an Option when driving, but I consider myself fairly good in memorizing Routes by Landmarks and Roadnames. If it gets really complex I also have an old barely reliable external GPS-Device in my Car (lost the Mount long ago). Its Maps are pretty outdated, and the Company keeps begging me to get a new one in Mails, but so far I have not encountered an Area having changed too much to find my Destination. How do you handle 2FA, especially for online banking or Microsoft work accounts? Denial, Anger, Bargaining, Depression, Acceptance. – In Seriousness, mostly Annoyance. Most Things that require 2FA still offer to send a Code via Text Message, which works fine for me, still bothers me. With the rare Situation that they require to use an App I rely on Ava to help me with that, though rarely a Service is important enough to warrant that for me instead of just disregarding it entirely. In the specific Case of online Banking I have a Cardreader by my Bank, that generates a TAN for me. How do you manage things like todo lists, reminders, calendars? Mostly via my Tablet as it allows me to share Lists and a Calendar with my Wife, but sometimes I use my Laptop for it or just write Things on Paper as well. How do you handle communications with friends and relatives? 99% of my private written Communication works via either Telegram or Discord, which I both used long before I even had a Tablet. Of course I now use them on the Tablet as well, but it is optional. How do you handle social interactions that “mandate” a smartphone, like a friend saying “venmo me”? Ironically, Venmo does not operate in Germany as I recently learned – but for the general Topic, I honestly never encountered such a Situation to be frank. Admittedly I can not even tell if instantly sending someone Money digitally just is not as much of a Thing here or if the People I am around just care too little about Sums of that Scale to demand it, but so far everyone was perfectly fine with just receiving Money back whenever (I am on a Computer next Time). Aside from that no social Interaction comes to Mind that would really necessitate a Smartphone. How do you scan documents? Varies depending on Circumstances, back in Uni I used the Scanners there, later Scanners at Workplaces, lately mostly my Tablet, as that has a Scanner Feature. Do you have a separate phone for work (or did you ever?) No, using only my private dumbphone or Email was sufficient so far. What’s your opinion on others who use smartphones? Admittedly in the Beginning, when Smartphones became more and more common and one after another of my Friends switched, I was a bit disappointed in them. These Days, they are so normalized and too often essential, that I see no Issue with someone else using one just because I do not want one myself. I do delight in encountering other People who still use a regular Phone though! Assuming you will not and never have a smartphone in the future, and in case you, someday, ever want to have children, what do you think you'll say to them when they reach an age where they ask you for one? Especially during adolescence, when a large part of interactions with their peers take place via smartphone apps. A Question as difficult as it is hypothetical. Obviously I would not handle this on my own, but together with my Wife and I think we both agree that it would be best to start them with regular, rather minimalist Phone at an Age when it becomes sensible that they would have one. I would definitely try to teach them about all the surrounding Issues like Online-Safety, Data-Security, Social Media, Resource-Ethics &c. &c. thoroughly, so they are well informed about it, as they get older. I would not push a Smartphone on them, but I would not deny them one either, because I absolutely understand that growing up in the World as it is now is very different than back in my Childhood and Teens and it would ask a lot of them, to isolate themselves so much from their Peers. So with anything regarding Children, my Stance is that Parents can not and should not control them, but provide them with the proper Tools and Knowledge to face the World in an informed and responsible Way. As this is such a Partnership-related Question and I know that she has a lot of similar Opinions to me, I would love Ava to weigh in about this as well! (Chiming in to say: I would not give my child a smartphone until way later. There are other ways to stay connected with peers, and they'll find a way, even if it is via other devices. I don't wanna teach them that giving in to what everyone else is doing despite it being kind of shit is in any way good, and it's not like they can legally have most accounts until 13 or older anyway; I think I'd start at 15 maybe.) Any other hassles when not having a smartphone? How do you handle them?(like: Links in SMS, gov apps, picking up parcels, digital-only tickets, restaurant menus…) Other than Links (or Images) in Text Messages I think I talked about all of those already and aired my Grievances haha. That one I had for the first Time a few Days ago and the Solution came down to manually typing the URL into the browser mostly. One other specific Occasion I can think of is being at a Magic-Tournament, where the Pairings are announced via App (which is useless to me in Store without Internet Connection), but I just ask Staff about which Table I was assigned to next, my Opponents will log the Results, so not a Problem either. How long do you think you can realistically keep this up? Any worries about availability of such phones, or the need to have a smartphone growing more painful? How do you manage the feeling of hitting a dead end? I earnestly see no End in Sight. I actually do have a handful of Backups, some the exact same Model as the current Phone, some not. And my current Phone still works as well as ever. That considered, I have no serious Worries of it getting problematic any Time soon. The Need for or rather assumed Access to a Smartphone is indeed getting more notable, but I would not think of describing it as painful without Irony or Exaggeration. Just as well I myself do not see it as a Dead End, so there is no Feeling associated with it. Do you ever feel like your dumbphone lifestyle is partly made possible because people around you aren't dumbphone users and you can rely on their smartphone? On the first Glance it might appear like that. I would not think of denying that I have Advantages from other People having Smartphones, but I see it as entirely optional and nice-to-have. If they had no Smartphones I would just adapt and find other Solutions and if some Place/Institution/Person absolutely required a Smartphone, then I would make it their Problem to deal with, simple as that. What kind of things do you think people assume you absolutely need a smartphone for, which you can do perfectly fine without? I think the Number one Thing is Navigation, directly followed by looking up Stuff online (like Availability of Products in Stores, Opening Hours, Addresses). In my Opinion People do overestimate how essential or difficult such Things are. As I said above, Things are either manageable or just possible to do without as well, I can be very austere in that Regard. Anything else you wanna say? It surprised me a bit how much Attention this Call for Questions garnered and it does also amuse me a bit, because that is obviously just Day to Day-Life to me. Makes Sense though that it is relevant for People engaging in the Smallweb! Nonetheless I did like getting the Opportunity to share my Views and Experiences with Technology with such a wide Audience and People being interested in them. I hope the esteemed Readers enjoyed reading my Replies and did not stumble too much over my Capitalisation that I burden Ava with. Should any more Questions arise, I am confident Ava gladly will relay them! I hope that this was helpful :) Let me know what you think! Reply via email Published 10 Sep, 2025

0 views
Weakty 3 months ago

Returning to Anki

Recently, I brought the spaced repetition system software Anki back into my life. For a while, between 2019 and 2023, I was using it frequently to practice learning French. Anki is a remarkable tool and allowed me to learn 5,000 French words (and a few other things too). What brought me back to Anki was learning that there have been some updates to the " algorithm " used to determine when cards should be shown to users. If you browse some top posts on the Anki subreddit, you'll see that several contributors have been working on refining this memory algorithm to offer the most results for the least work—I suppose that's what an algorithm is, after all. Needless to say, my ears perked up when I read about people trying to optimize human memory and recall. So I reinstalled Anki and decided to purchase the iOS version for my phone. Having Anki on my phone makes a much bigger difference than having just the desktop application. Now, when I'm stealing slivers of time from my day, I'm able to do a little recall practice and work towards improving my memory about various things. I've even gone searching for the French decks I used to use, which have since been updated, and have reinstalled them. It's been fun and impressive to see that even the older algorithm was working quite well—I've been able to recall words that were probably set to only be seen after years had passed. I also picked up a deck for learning geography. I never thought to do this before! I have a good friend who can name just about any capital of any country, recognize flags, or identify the shapes of countries easily. I was impressed when I learned this about him and decided I want to try to do the same. As I've gone about learning these different capitals, flags, and countries, I've realized the extent of my ignorance when it comes to geography. I've learned so much about different countries already. Just out of natural curiosity about these places, I've gone on Wikipedia to read more about them, and that's been very satisfying. I also found a tool (built with web assembly!) that converts multi-line poetry into Anki cards for memorization. The intent expressed as an example on the website is to memorize Hamlet, but I've been using it to memorize song lyrics and it's pretty effective. What I’ve been most surprised to (re)learn, is how flash cards and engaging my memory is pushing my curiousity. I think this is one of the better parts of school — seeing what your mind can do with new information, and following your mind going to new places: Did you know the capital of Vanuatu is Port Vila? I didn’t even know Vanuatu existed.

0 views
James O'Claire 3 months ago

Uncovering Lesser Known Mobile Adtech Domains

AppGoblin has now run over 40k apps in an emulator, tracking millions of API calls thousands of advertising domains. Unfortunately, some of them are dark, meaning they have no landing page of any kind, and I’m unclear who controls these domains. Let’s see if we can figure them out! This one is a mystery. Seems like it’s related to Germany since it’s always resolving to HETZNER and german IPs. Checking the shared IPs, it looks like they do overlap with unity3d.com domains sometimes. Again, this whole list is games. Looking at the requests I can match various keys to values from untiy3d.com API calls! Specifically they share the same `app_key` values. Well that name definitely comes off as esoteric at first. First let’s check the IP cluser and see what we find, of the 233 apps sending/receiving from acobt.tech we have 4 other sites with 1:1 matches that are all sites that do not have any landing pages. acobt.tech 233 news-cdn.site 233 inmense.site 232 kickoffo.site 232 Searching the internet shows various hits saying some of these belong to Bigo Ads . Let’s check the apps’ SDKs and see Again we got lots of games, and looking it looks like AppGoblin has indeed already found that each of these has a Bigo Ad SDK . Wait, this one also matches the IPs for the other various Bigo Ads. Seems like Bigo really uses a lot of random domains? OK, great name. This one appears in clusters of SDK advertising, making me think it’s related to a mediation SDK of some kind (rather than to one specific ad network). Possibly this is bidmachine.io’s as it is the most common, but really all the top ad newtorks appear nearly 1:1 along side it across the 276 apps I’ve found it in: bidmachine.io 275 unity3d.com 270 doubleclick.net 269 mtgglobals.com 267 rayjump.com 267 applovin.com 261 vungle.com 257 Definitely game focused list here. They almost all call variations of Looking around there are lots of examples of shared IP addresses with everestop.io and bidmachine, so I think that might have solved that. everestop.io 172.240.40.172 bidmachine.io 172.240.40.172 bidmachine.io 204.74.252.252 everestop.io 172.240.61.171 voisetech.com 34.216.198.39 Looks like a lot of the apps have the and SDKs, so I’m thinking that `lazybumblebee.com` does indeed belong to BidMachine and helps it with some app mediation service. is just the kind of generic descriptive name I’d come up with. Example apps, there are a lot of very corporate apps in here along with lots of shopping. Each app sends off two API calls on start to a unique (per app) subdomain on marketingcloudapis.com with the response from the first API call below. The information sent seems somewhat bland compared to the usual deep scraping that advertising SDKs do. So this is likely paired with other API calls already going out. Checking on domains that are called together, it looks like this is almost always called with so possibly this is related to Google, but this is a bit weak as a lot of Android apps have integrations with Google. EDIT: I posted this on HackerNews and user politelemon correctly identified this as SalesForce . Very awesome spot by that user, and it matches the various AppGoblin SDKs for each app as in this example for the Adidas app SDKs . Much better than I expected. A bit of digging and all the URLs were figured out with the exception of marketingcloudapis.com which I was a bit unsure of, but looks like google.com Woodoku – Wood Block Puzzle Draw Climber Spider Rope Hero: Action Game Running Pet: Dec Rooms Bubble Shooter 2 Pirate Treasures: Jewel & Gems Tik Tap Challenge Collect Em All! Clear the Dots Gun Simulator & Lightsaber Pizza Ready! Sculpt People Vita Mahjong Modern Bus Simulator: Bus Game Gym Heros: Fighting Game Blockman Go Going Balls aquapark.io Snake.io – Fun Snake .io Games 1945 Air Force: Airplane Games adidas: Shop Shoes & Clothing Claro música Domino’s Pizza USA SiriusXM: Music, Sports & News GasBuddy: Find & Pay for Gas

0 views
James O'Claire 3 months ago

August 2025: Top Mobile App Advertisers

AppGoblin is excited to share the latest ad network rankings for August 2025 , based on our ongoing scans of live mobile app ads. AppGoblin SDK scans already make it clear which apps are monetizing with which ad networks, or which companies provide the technology behind a given app. But the most important question was missing: which apps are actually buying ads? With the release of AppGoblin’s in-app advertiser tracking, you can now browse August 2025’s top mobile app advertisers and their creatives . This allows for mobile marketers to see real advertising activity from competitors, measure market momentum, and understand where budgets are being spent. It’s also useful for B2B companies looking to identify active app advertisers they may want to approach. Let’s start with Water Sort , a hyper-casual puzzle game that I myself recognize from seeing Water Sort ads constantly. On Water Sort’s AppGoblin ad creatives page . you can view the full gallery of creatives currently being run. These include both video and static variations, and you can track how they evolve from month to month. From there, head to Water Sort’s ad placements to see which apps were publishing Water Sort’s creatives and on which mobile ad networks. For some programmatic ad buys we can also see the buy side DSP that was used. For example, we can see that Appreciate.mobi (a DSP owned by Digital Turbine ) is a major buy side channel for Water Sort. This means Water Sort is buying inventory through Appreciate, which in turn places ads into the monetizing games connected to the exchange. By clicking into a specific placement, you can trace which publishing app was showing the Water Sort ad, and which intermediary companies (exchanges, SSPs, or other ad tech vendors) were involved in the transaction. This type of visibility is key for understanding both competition and the ad tech supply chain. Other than TikTok, Plarium’s Throne: Kingdom at War , a midcore strategy game that has been active in the market for years but still spends aggressively to acquire new players. On Throne’s AppGoblin ad placements page you can see the current campaigns in action and the creatives being used. In August, Throne ads were observed across dozens of publishing apps mostly using Google Ads (on the publishing side that would be AdMob) , the ads here are mostly served via doubleclick.net which is common. This new layer of insight—connecting advertisers to placements—lets us go beyond simply knowing which SDKs apps use. For traditional SDK-based integrations, the story is straightforward: publishers monetize directly through the SDK. But in the programmatic ecosystem, things are more complex. Daisy-chained connections between SSPs, exchanges, and DSPs mean that an ad for Water Sort or Throne might pass through multiple intermediaries before it reaches the end-user’s screen. By mapping this supply path, AppGoblin allows marketers to better understand where budget is flowing, and how networks interact with one another in practice. Finally, the ad creative library provides a quick way to compare formats. You can browse still image ads, video ads, and even see how creative strategies differ between hyper-casual titles like Water Sort and midcore strategy games like Throne: Kingdom at War. Over time, this archive will highlight broader creative trends—such as the dominance of puzzle-to-win ads, cinematic battle simulations, or the rise of interactive playable ads. For now, thumbnails of captured creatives are available to browse, with expanded metadata coming soon.

0 views
Cassidy Williams 3 months ago

Ductts Build Log

I built and released Ductts , an app for tracking how often you cry! I built it with React Native and Expo (both of which were new to me) and it was really fun (and challenging) putting it together. Yes! I should have anticipated just how many people would ask if I’m okay. I am! I just like data. Here’s a silly video I made of the app so you can see it in action first! The concept of Ductts came from my pile of domains, originally from November 2022 (according to my logs of app ideas, ha). I revisited the idea on and off pretty regularly since then, especially when I went through postpartum depression in 2023, and saw people on social media explain how they manually track when they cry in their notes apps for their therapists. I had a few different name ideas for the app, but more than anything I wanted it to have a clever logo, because it felt like there was a good opportunity for one. I called it crycry for a while, CryTune, TTears (because I liked the idea of the emoticon being embedded in the logo), and then my cousin suggested Ductts! With that name I could do the design idea, and I thought it might be a fun pun on tear ducts and maybe a duck mascot. Turns out ducks are hard to draw, so I just ended up with the wordmark: I really wanted this app to be native so it would be easy to use on a phone! I poked around with actually using native Swift, but… admittedly the learning curve slowed me down every time I got into it and I would lose motivation. So, in a moment of yelling at myself to “just build SOMETHING, Cassidy” I thought it might be fun to try using AI to get me started with React Native! I tried a0 at first, and it was pretty decent at making screens that I thought looked nice, but at the time when I tried it, the product was a bit too immature and wouldn’t produce much that I could actually work with. But, it was a good thing to see something that felt a bit real! So, from there, I started a fresh Expo app with: I definitely stumbled through building the app at first because I used the starter template and had to figure out which things I needed to remove, and probably removed a bit too much at first (more on that later). I got very familiar with the Expo docs , and GitHub Copilot was helpful too as I asked about how certain things worked. In terms of the “order” in which I implemented features, it went like this: And peppered throughout all of this was a lot of styling, re-styling, debugging, context changes, design changes, all that jazz. This list feels so small when I think about all of the tiny adjustments it took to make drawers slide smoothly, gestures move correctly, and testing across screen sizes. There’s a few notable libraries and packages that I used specifically to get everything where I wanted: I learned a lot about how Expo does magic with their Expo Go app for testing your apps. Expo software developer Kadi Kraman helped explain it to me best: A React Native app consists of two parts: you have the JS bundle, and all the native code. Expo Go is a sandbox environment that gives you a lot of the native code you might need for learning and prototyping. So we include the native code for image, camera, push notifications and a whole bunch of libraries that are often used, but it’s limited due to what is possible on the native platforms. So when you need to change things in the native-land, you need to build the native code part yourself (like your own custom version of Expo Go basically). One of the things I really wanted to implement was an animated splash screen, and y’all… after building the app natively, properly, about a million times, I decided that I’m cool with it being a static image. But, here’s the animation I made anyway, for posterity: So many things are funky when it comes to building things natively, for example, how dependencies work and what all is included. There are a handful of libraries where I didn’t read the README (I’m sorry!!!!) and just installed the package to keep moving forward, and then learned that the library would work fine in Expo Go, but needed different packages installed to work natively. Phew. Expo Router is one of them, where again, if I had just read the docs, I could have known that I shouldn’t have removed certain packages when using . This is actually what you need to run if you want to install : Kadi once again came in clutch with a great explanation: The reason this sometimes happens is: Expo Go has a ton of native libraries pre-bundled for ease of development. So, even if you’re not installing them in your project, Expo Go includes the native code for them. For a specific example, e.g. this QR code library requires react-native-svg as a peer dependency and they have it listed in the instructions . However if you were to ignore this and only install the QR code library, it would still work in Expo Go, because it has the native code from pre-bundled. But when you create a development build, preview build or a production build, we don’t want to include all the unused code from Expo Go, it will be a completely clean build with only the libraries you’ve installed explicitly. The Expo Doctor CLI tool saved my bacon a ton here as I stumbled through native builds, clearing caches, and reinstalling everything. Kadi and the Expo team actually made a PR to help check for peer dependencies after I asked them a bunch of questions, which was really awesome of them! Y’all shipping native apps is a horrible experience if you are used to web dev and just hitting “deploy” on your provider of choice. I love web development so much. It’s beautiful. It’s the way things should be. But anyway, App Store time. I decided to just do the iOS App Store at first because installing the Android Simulator was the most wretched developer experience I’ve had in ages and it made me want to throw my laptop in the sea. Kadi (I love you Kadi) had a list of great resources for finalizing apps: TL;DR: Build your app, make a developer account, get 3-5 screenshots on a phone and on a tablet, fill out a bunch of forms about how you use user data, make a privacy policy and support webpage, decide if you want it free or paid, and fill out forms if it’s paid. Y’all… I’m grateful for the Expo team and for EAS existing. Their hand-holding was really patient, and their Discord community is awesome if you need help. Making the screenshots was easy with Expo Orbit , which lets you choose which device you want for each screenshot, and I used Affinity Designer to make the various logos, screenshots, and marketing images it needed. I decided to make the app just a one-time $0.99 purchase, which was pretty easy (you just click “paid” and the amount you want to sell it for), BUT if you want to sell it in the European Union, you need to have a public address and phone number for that. It took a few pieces of verification with a human to make that work. I have an LLC with which I do consulting work and used the registered agent’s information for that (that’s allowed!), so that my personal contact info wouldn’t be front-and-center in the App Store for all of Europe to see. The website part was the least of my worries, honestly. I love web dev. I threw together an Astro website with a link to the App Store, a Support page, and a Privacy Policy page, and plopped on my existing my domain name ductts.app . One thing I did dive deep on, which was unnecessary but fun, was an Import Helper page to help make a Ductts-compatible spreadsheet for those who might already track their tears in a note on their phone. Making a date converter and a sample CSV and instructions felt like one of those things that maybe 2 people in the world would ever use… but I’m glad I did it anyway. Finally, after getting alllll of this done, it was just waiting a few days until the app was finally up on the App Store, almost anticlimactically! While I waited I made a Product Hunt launch page , which luckily used all the same copy and images from the App Store, and it was fun to see it get to the #4 Health & Fitness app of the day on Product Hunt, and #68 in Health & Fitness on the App Store! I don’t expect much from Ductts, really. It was a time-consuming side project that taught me a ton about Expo, React Native, and shipping native apps, and I’m grateful for the experience. …plus now I can have some data on how much I cry. I’m a parent! It happens! Download Ductts , log your tears, and see ya next time.

0 views
Justin Duke 3 months ago

Three apps that will not change your life

After what has felt like a long winter of habitual reliance on my existing tools, I’m finally playing around with some new ones. This is a healthy habit—so long as you don’t convince yourself that you’re just one more App Store download away from a previously unimaginable level of personal satisfaction and joy

0 views
neilzone 3 months ago

Fixing my Pixel 6's USB port issue with a trimmed down cocktail stick

I have a Pixel 6 phone, running GrapheneOS. It is a few years old but, other than being a bit short on storage, it does pretty much everything I need. I am not in a hurry to upgrade it, because, well, there’s no need for me to do so. But, for the last few months, I’ve noticed that the USB port is a bit iffy. Not absolutely broken, since I can charge and sync using it, but problematic enough that charging is unreliable. Initially, I thought that it was lint in the socket, so I cleaned it out with something small, and tried again. “Drat”, I thought. It was not a complete pain, as I tend to charge using a “wireless” charging pad anyway, and I sync my phone using a cable only occasionally, when I want to add new music. So no big deal, but an annoyance. It is more of a pain when it comes to driving, as the USB cable that I have in the car just falls out of the socket. The cable tests fine, and other cables also fall out, so I blamed the socket not the cable. Over the weekend, someone said that they had had the same problem, and that they had also tried cleaning lint out of the socket. But they needed to give it an even firmer cleaning, to get even more lint out. Someone else said that they had done this, and the USB port stopped working completely afterwards. So, with a bit of nervousness, I tried again using a shaved-down cocktail stick, so that it was wood (and thus not a conductor, just in case) and to make it thinner to avoid stressing the connector in the socket too much. I had to push and pry really quite hard, but gradually more and more lint came out. And, having done that, the USB cable seated itself again properly, and did not fall out. I’ve tried syncing the phone this morning and, again, the cable fitted in place properly, and the sync was not interrupted. So, with many thanks to those who shared tips, hopefully, my Pixel 6 now charges and syncs reliably via USB again. The storage is another issue…

0 views
Herman's blog 3 months ago

Digital hygiene: Notifications

This is part 2 of a 3 part series on digital hygiene. I suggest starting at part 1 . Over the past few years I've cultivated a decent relationship with my phone. Not a good one, mind you, but one I'm fairly comfortable with. There is a part of me that yearns for a return to simple, black-and-white phones, with Internet access limited to whichever room in the house had the phone line and computer. But there's no going back; and so I had to find a way to live with the Internet (and the hyper-connectivity it entails) in my pocket. Developing a good relationship to your phone is an intentional process. It doesn't happen by accident. All apps and media, by design, are fighting for your attention. I've heard the term "attention economy" thrown around, and I feel like it's an apt description of the battle for our increasingly fractured attentions. And the easiest way to grab your attention is via notifications. Sometimes I see a person's phone covered in notifications and I get anxiety-by-proxy. Red badges in the triple-digits; the notification bar an endless list of banners, messages, friend requests, and marketing content. I can't imagine this is a pleasant experience, but it seems to be the norm.

0 views