Showing posts with label puzzlepal. Show all posts
Showing posts with label puzzlepal. Show all posts

Monday, October 1, 2012

Puzzle Pal: Substring extractor

I was at BANG 33 yesterday, and one of the puzzles involved extracting words out of other words. We did the extraction by hand at the game, but today I set down at my desk and added a substring extractor to Puzzle Pal.

While I was at it, I also bundled the wordlist into the main app, and updated the UI to use action bar.

If you find Puzzle Pal useful, please review it on Google Play. You can also leave a comment here if you have ideas for other solvers and decoders.

Happy puzzling!

Thursday, December 15, 2011

It warms my heart to read a nice review

Puzzle Pal caters to puzzle aficionados who want a little help, but often people download it without reading the description, and get disappointed because it is not a game. So I am always elated to read a review of someone who appreciates it. Today I saw one in the NOOK store:

If you use an app and you like it, go write a nice review. That's what fuels developers to create even more awesome apps!

Friday, December 2, 2011

Puzzle Pal now in the NOOK store

I attended the NOOK Apps Workshop at App Dev Hackathon, and decided to submit Puzzle Pal to the NOOK store just to see how it works. 

Bundle the dictionary

Puzzle Pal was first developed for the G1, which has very little on-device space for apps. This drove the decision to deliver the wordlist in a separate package for storing on SD card. But it makes the initial install a little cumbersome, requiring the user to juggle between two apps. Since the NOOK store has an approval process, I decided it is easier to have a single package with the wordlist bundled. It only adds 1MB to the package, which is not a big deal as long as you are not running the G1 :)

Test on the emulator

I did a round of testing on the emulator from the NOOK sdk. Everything works fine except the about dialog. The AlertDialog on NOOK uses a white background even if you specify a dark theme, so the white text on my about dialog was not visible. I used a WebView to link to the data source for the wordlist, setting the text color with css. With the NOOK, I had to switch AlertDialog.Builder.setMessage so the system can set both the background color and the text color. The side effect is that I could not have clickable links, which is fine. I simply spell out the url.

The many steps of app submission

Now my app is ready, I started the app submission process. Man, there are so many steps!

  1. Upgrade to NOOK App Developer status

    I signed up at the Nook Developer Site to download the SDK, but to submit an app, my account needs to be upgraded to developer status. I did not understand why. Fortunately since I attended the NOOK Apps Workshop, I was granted access fairly quickly.

  2. Get the developer account approved

    Next I had to fill in tons of information including my bank account and tax information. And all these needs to be approved. Why? I am not even selling anything. I just want to offer Puzzle Pal for free. Again, the saving grace was that it took only a few hours for the account to be approved.

  3. Get the app metadata approved

    Finally I got to the point where I filled in the basic information for my app. They wanted a 300x300 icon. No problem, I resized mine that way. A few screenshots with the app running on the NOOK. Fair request, I captured a few. I put everything together, and BAM, the icon was rejected. Why? Because it has a transparent background. What? What's wrong with a transparent background? And oh, it cannot be white either. Why? I ended up adding a random blue gradient background to my icon. But this is so arbitrary.

    And now I wait for the metadata to be approved. That didn't take long, because some script rejected it, saying that the description "makes references to the app being for a phone". I was pretty sure I did not do that, but I checked my description text anyway. Turns out I said you can use Puzzle Pal for "phone spell", which is a standard puzzle technique to translate numbers to letters according to the dial pad, e.g. 3569377 becomes FLOWERS. I didn't have the energy to explain that, so I just removed the words "phone spell" from the description.

  4. Get the apk approved

    Finally I got to upload my apk! That turned out to be the easy part. No issues whatsoever, the apk was approved within a day.

Check the NOOK store

I was waiting patiently for Puzzle Pal to show up at the NOOK store, which should take 24 to 48 hours according to the status message for my app. A week went by and nothing happened. I filed a ticket to figure out why. Someone responded within a few hours:

Hello! Yes, it's being worked on and hopefully resolved by the end of the week. Stay tuned on this. You've done everything right, we're working on our build system and your account had missing information which is on us.

Very happy that they reassured me that I've done everything right. Also very happy that I pinged them, because I had no idea that my account had missing information.

Two days after I filed the ticket, Puzzle Pal is on the NOOK store today!

I did not expect this to be such an adventure. How I miss the straightforward Android Market! Hopefully they will streamline the process so us developers can focus on producing wonderful apps instead of stressing over getting our apps approved and published.

Tuesday, November 22, 2011

Puzzle Pal: Swap letter and ROT 13

In The Game a couple weeks ago, one of the puzzles involves replacing a letter in a word to form another word. To my horror Puzzle Pal didn't know how to solve it! I quickly added a new solver and posted an update to the Android Market.

While I was at it, I realized that Puzzle Pal also didn't have a ROT 13 decoder, useful for geocaching, so I added that as well.

Enjoy!

Monday, November 7, 2011

Puzzle Pal: Recompiled for tablets

One of the first things I did after winning an Android tablet from the AT&T hackathon was to download Puzzle Pal. It worked, but was only rendering itself in a teeny tiny window in the middle. Time to recompile it with the latest SDK so it knows what to do with tablets.

I thought all I needed to do was to recompile, but it still didn't expand to fill up the whole space. Turns out I need to tell it not to run under compatibility mode for tablets in uses-sdk in AndroidManifest.xml:

<uses-sdk 
  android:minSdkVersion="3" 
  android:targetSdkVersion="12" />

And then I ran into another issue: the sudoku grid was not accepting inputs. Not quite sure what changed between the SDK versions, but now the view needs to implement TextWatcher and update the grid onTextChanged.

I didn't get a chance to optimize the UI for tablets, so the Braille decoder looks a bit silly. In any case, please grab the latest version from Android Market and let me know if you run into issues.

Friday, November 6, 2009

Puzzle Pal: Sudoku Solver UI fixes

I did some fine tuning to the Sudoku Solver. The input grid is a subclass of EditText, and I override the onTouchEvent method to select a cell. After that I used to return false. I changed it to return super.onTouchEvent so that it brings up the soft keyboard when you tap anywhere on the grid.

I also changed the way I handle key events. Before I used getDisplayLabel() to determine the letter typed, which is incorrect since it only reflect the label on the keyboard, ignore key combinations. Now I use getNumber(), which confusingly also returns characters that are not numbers.

Wednesday, September 23, 2009

Puzzle Pal update: now with decoders!

I just uploaded Puzzle Pal v1.1.0 to Android Market. It has a new Decoders menu with three decoders: Braille, Morse Code and Semaphore.

All of the decoders have a buffered area to show decoded output, so you can just keep adding new symbols and see what it spells.


Saturday, September 5, 2009

Customize the soft keyboard

When you type something in Puzzle Pal, it is usually just a sequence of characters, not a valid word. The Android soft keyboard has auto-correct as default, which can be a bit annoying. Fortunately, you can customize the soft keyboard by specifying the input type of the TextView.

When I am expecting text, I use this:

textView.setInputType(
  InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

Phone spell only accept digits, so I use this instead:

textView.setInputType(InputType.TYPE_CLASS_PHONE);

setInputType tells the system what you expect as your input. I picked visible password for text because that turns off auto correction. For phone spell, well, it is much more intuitive to offer a phone pad, isn't it?

Thursday, August 27, 2009

Puzzle Pal launched

It all started in New Zealand.

I have always wanted to learn to do cryptic crosswords, but in USA only the hard-core cruciverbalists play cryptics, so there isn't a lot of beginner material. Imagine my joy when I bought my first cryptic crossword booklet in a supermarket in Te Anau! I happily went through the puzzles, but as a newbie I often got frustrated when I knew what do to, be it anagrams, hidden answers and what have you, but was stuck anyway because I could not come up with the word. Internet was not available since I was touring the country, so I really wanted an offline app on my phone.

I came home and started writing an app for pattern matching and anagram, which are great for cryptic crosswords. After I built the wordlist, I realized that I could do more with it, so I threw in different modes like phone spell and caesar cipher. While I was at it, I added a sudoku solver too.

I was going to keep this as a little tool for myself, but once my friends saw it, they wanted a copy as well. I polished the app a bit, and decided to put it on the Android Market for all to enjoy. Hope you like it too.