RSSAmplifier

Blog

Square Island

Android development and more.

blog.sqisland.comRSS feed ↗25 posts

Latest posts

Sample Ballot: From pdf to custom page

Ballot Guide Last year I wrote Ballot Guide to learn Flutter and Firebase and to make election information more accessible. The 2019 election is coming up in November, so I thought, hey I'll use my app to get more information. But there was nothing. Google Civic Information API I went to check the list of elections on the Google Civic Information API and indeed, they don't have our local elections…

Meetup Child Care: Parents Night Out

As a meetup organizer, I strive to be as inclusive as possible, but I struggle with picking a time that works for parents. I've surveyed the members to see if moving from a weeknight to weekday lunch time or weekend would work better, but there was no obvious time that works for everyone. I was lamenting about this problem to Effie and she told me about Parents Night Out. Various companies and…

Modular Meal Planning

The topic of healthy eating often comes up when I'm chatting with friends. They are very impressed that my husband and I both work from home and cook lunch and dinner every day. We got quite the modular meal planning system in place and so I thought I'd share it here. Our taste I'm Chinese and my husband is French, so we have our own notion of comfort food. Vegetables are very prominent, and we…

Types of Android Tests

I saw this Reddit discussion on Android testing concepts, which tries to categorize tests into short, medium and long. I don't find that a very useful way to think about different types of tests, so I thought I'd give offer my view. Two dimensions I think it's more useful to think of tests in two dimensions Does it run on the JVM or needs a device? Does it test the UI or not? Depending on the…

Why I run a conference

As some of you know, I'm one of the organizers for 360|AnDev . It's a lot of work to run a conference, so why do I do it? I started the conference because I want an inclusive place for people to learn about Android: We want it to be welcoming to beginners so that they can plug into the community right away. That's why we have a "Getting Started" track (see our CFP ). We want to encourage…

Droidcon Boston Keynote

I just came back from the inaugural edition of Droidcon Boston last week, at the beautiful Calderwood Pavilion. Yes, #DroidConBos is at a theater. pic.twitter.com/OjNjaQOnOv — Chiu-Ki Chan (@chiuki) April 10, 2017 Keynote preparation I had the honor to deliver the Day 2 keynote at Droidcon Boston. I prepared extensively when I first gave this keynote at Android Summit , so this time I was…

Lint stuck after upgrading gradle plugin to 2.3.0

app:lint hangs after I upgraded the gradle plugin to 2.3.0 . Unexpected failure during lint analysis (this is a bug in lint or one of the libraries it depends on) It complains about ProblemReporter.isClassPathCorrect(ProblemReporter.java:4761) and other places in ProblemReporter , but I was not able to pinpoint the problem. Turns out this is caused by libraries that uses old lint APIs, in my case…

Constraint Layout beta5 lint error

Constraint Layout beta 5 is the release candidate, and added a lint to deprecate older versions. The easiest way to get rid of the lint error is to press Alt-Enter and choose the first option to upgrade. However, I encountered a bug , which forces me to stay with beta4 until the next version comes out with the fix. I still want to get rid of the lint error so my continuous build does not fail. I…

Java compatibility in build.gradle

I got an email from Google asking me to update Fit Cat for Android Wear 2.0 , so I tried to compile that app after I haven't touched it for a few months. Since Android Studio evolves so quickly, I wasn't exactly surprised when I got an error: Error converting bytecode to dex: Cause: Dex cannot parse version 52 byte code. This is caused by library dependencies that have been compiled using Java 8…

Elite Worship

Yesterday I read an article called In a world... , which talked about the problem of elite worship in the iOS community. I'm an Android developer, but I see the same problems in our community as well. Here is how I see it: People who tweet, blog, speak and open source are considered elites Elites are held above the rest of the community, making it unwelcome for others Does being loud make you a…

Dennis Ritchie Dies Again

Yesterday many people on my Twitter timeline sharing an article about Dennis Ritchie's death: Dennis Ritchie, Father of C and Co-Developer of Unix, Dies https://t.co/LxkCK6i1DE via @WIRED — Om Malik (@om) October 13, 2016 I clicked through to read the article, which was from 2011. Why is this circulating again? My guess is that some people were retweeting without bothering to read the…

Constraint Layout: Icon Label Text

I am making one of those classic layouts: an icon with two lines of text. I would like to use vector drawable for the icon, and scale it according to the text sizes. I want the top edge of the icon to line up with the top edge of the first line of text, and the bottom edge of the icon to line up with the bottom edge of the second line. How would I do that? With ConstraintLayout ! <ImageView…

TransactionTooLargeException crashes on Nougat

I was testing my app on Android Nougat, and it crashed when I try to move from one Activity to another. I saw this in the log: java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 700848 bytes . Actually, the platform has been printing warning log about this for a while, but let's be honest, who has time to read all the logs? Nougat (API 24) throws…

Speaking profile

Your speaking profile showcases your speaking experience. Conference organizers can see where you have spoken at, look at the slides, and watch videos of your talk. Make one now, even if you are just getting started. You can list the topics you would like to speak about, and then add your talks as you schedule and give them. Here are 3 places you can host your speaking profile. Blog page Most…

360|AnDev: Money

360|AnDev is the first time I run a conference. I was raised to be frugal, never spending money that I don't have, but putting on a conference requires exactly that. We have to book the venue, order badges, buy plane tickets for speakers etc, all without knowing if any one will actually buy tickets to the conference. It was nerve-racking. 50 Shades of No Our first source of income is sponsorship.…

360|AnDev: CFP process

One of the reasons why I decided to run 360|AnDev is that I want a inclusive place for Android developers to learn from each other. Inclusivity has many dimensions: identities, financial status, level of experience, to name a few. We want everyone to feel welcome, and we know that the speakers will set a tone for the whole conference, so we were very careful in our CFP process. Core track I know…

One year of sketchnoting

I made my first sketchnote at Write/Speak/Code 2015 on the impostor syndrome talk by Neha Batra . Dealing w/ "I cannot draw" by sketchnoting: You Are Not Your Impostor Syndrome by @nerdneha at #wsc2015conf pic.twitter.com/HTXm5wpYuk &mdash; Chiu-Ki Chan (@chiuki) March 19, 2015 I started with a single black pen, added a gray marker as I experimented with shading. Sketchnote: Tweeting about…

Write/Speak/Code: 10x Myself

I am very active in the Android community, blogging and speaking and sharing code, but I can only do so much as one person. To scale my efforts, I mentor others to do the same, which aligns with the goals of Write/Speak/Code exactly. During Write day last year I shared my conference report blogging formula , I have seen it being adopted widely. Some examples: Big Android BBQ 2015 by Kelly Shuster…

The State of Android Testing

We all know testing is good for you, but it is very overwhelming. What is a unit test? What is an instrumentation test? Espresso , Robolectric , Mockito what do all these libraries do? More fundamentally, why should I test? I'd like to give a keynote talk to answer all these questions. Do you know a conference that would be interested? Perhaps Droidcon NYC ? The State of Android Testing…

Coding live stream

I first heard about live streaming when I watched Dina Rodriguez hand lettering on Twitch. I thought @Twitch is only for gaming, but then I discovered @lettershoppe https://t.co/jxNgNoI17v #lettering pic.twitter.com/4vAhOJAZKX &mdash; Chiu-Ki Chan (@chiuki) January 17, 2016 But I wasn't sure what to do in front of a live audience, so I didn't do anything about it until I met Liam Spradlin at…

Advanced Espresso at #io16

I missed the Advanced Espresso talk at Google I/O this year because it was at the same time as Building rich fitness experiences with Google Fit platform and Android Wear , where Fit Cat was featured. Here is a direct link to the point when @monziggity starts to talk about #FitCat in the #io16 talk https://t.co/aKSQEfclfK &mdash; Chiu-Ki Chan (@chiuki) May 27, 2016 Finally got a chance to watch it…

Tips on hosting Google Hangout on Air

My friend Yash is hosting an Ask Me Anything via Google Hangout , and asked me for some tips. Thought I'd share them with everyone! Rule number one of Google Hangout: Anything that could go wrong, will. That said, here are a few things you can do to make it better. Get on it 15 minutes before event time to get over technical difficulties. Go live 5 minutes before event time so people who come…

Go Code Colorado

Go Code Colorado is a state-wide event to innovate on top of Colorado open data . Android Atelier went to Challenge Weekend in Fort Collins. We look like a team who might have a business plan. #gocodeco @chiuki @KellyShuster @kenodoggy pic.twitter.com/yZyu4bLFrP &mdash; Sepideh (@sepzilla) April 2, 2016 Preparation We wanted to use CartoDB to visualize the geo data on the map, so we went to…

How to make a podcast transcript

I really enjoyed my chat with Saron on the CodeNewbie podcast , and wanted to circulate the content more widely. Audio is great, but text is more searchable and thus more discoverable, so I wanted to transcribe the show. Automatic transcript via YouTube YouTube transcribes for free, all you need is a video. I took the podcast and made a video with a black screen, and uploaded to YouTube. The…

CodeNewbie podcast: Visibility

I was on the CodeNewbie podcast a few weeks ago to talk about blogging, tweeting, speaking, and shared a some tips on how to promote yourself without feeling braggy. I would like to make the content more accessible, and decided to make a transcript of the show. I used YouTube, Fiverr, plus my own python script to produce the transcript. Read how I did it: How to make a podcast transcript . You can…