<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title>Frimicc</title>
 <link href="http://www.frimicc.com/atom.xml" rel="self"/>
 <link href="http://www.frimicc.com/"/>
 <updated>2024-11-21T04:18:34+00:00</updated>
 <id>http://www.frimicc.com</id>
 <author>
   <name>Michael Friedman</name>
   <email>michael@frimicc.com</email>
 </author>

 
 <entry>
   <title>JSON Web Tokens and SwiftyJWT</title>
   <link href="http://www.frimicc.com/2018/09/08/swiftyjwt/"/>
   <updated>2018-09-08T00:00:00+00:00</updated>
   <id>http://www.frimicc.com/2018/09/08/swiftyjwt</id>
   <content type="html">&lt;p&gt;If you’re looking for an easy way to authenticate REST API requests, you’d be in good stead to look at JSON Web Tokens (&lt;a href=&quot;https://jwt.io&quot;&gt;jwt.io&lt;/a&gt;). They are simple and well-supported on many languages and platforms.&lt;/p&gt;

&lt;p&gt;They work like this: each URL you want to authenticate has a token added to it which contains&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;A JSON dictionary or array containing parameters.&lt;/li&gt;
  &lt;li&gt;A metadata dictionary containing expiration date, issue date, and other info.&lt;/li&gt;
  &lt;li&gt;An encrypted hash of the parameters + metadata.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You use the hash to verify that the other two sections haven’t been changed in transit. If it matches, you can be assured of the integrity of the data.&lt;/p&gt;

&lt;p&gt;The beauty of this process is that you can encrypt the hash using public-private key pairs. You keep the private key secured on your server and push the public key into your iOS, Android, and Web apps. Then the apps can verify that any link they got matches what the server sent. If you have a secure way to get another private key into your clients, then they can encrypt JWT for the server to verify too.&lt;/p&gt;

&lt;p&gt;I don’t know about you, but I’ve “invented” several ways to do this over the years before I discovered JWT. Now I’m done making up crazy verification methods and can use the standard. Woot!&lt;/p&gt;

&lt;p&gt;If you do decide to use JWT in your apps, I’d like to recommend SwiftyJWT (&lt;a href=&quot;https://cocoapods.org/pods/SwiftyJWT&quot;&gt;Cocoapods link&lt;/a&gt;). It’s clean, easy, and I just fixed a bug in it so it can now handle both HMAC (symmetric keys) and RSA (asymmetric keys) algorithms for the hash. Using RSA + SwiftyJWT, I’m much less worried about people hacking my API now.&lt;/p&gt;

&lt;p&gt;Stay safe!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Hex Map Maker v1.1</title>
   <link href="http://www.frimicc.com/2018/05/01/hex-map-maker-v1.1/"/>
   <updated>2018-05-01T00:00:00+00:00</updated>
   <id>http://www.frimicc.com/2018/05/01/hex-map-maker-v1.1</id>
   <content type="html">&lt;p&gt;I’m proud to announce version 1.1 of &lt;a href=&quot;/hexmapmaker/&quot;&gt;Hex Map Maker page&lt;/a&gt;, now with new and improved graphics and UX design from the
talented &lt;a href=&quot;https://erikacary.com/&quot;&gt;Erika Cary&lt;/a&gt;. Go update your app and check it out!&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Shout out to App Icon Maker</title>
   <link href="http://www.frimicc.com/2018/04/13/appiconmaker-co/"/>
   <updated>2018-04-13T00:00:00+00:00</updated>
   <id>http://www.frimicc.com/2018/04/13/appiconmaker-co</id>
   <content type="html">&lt;p&gt;I just have to say, after deciding to make an app for the iOS App Store, the one thing I &lt;em&gt;don’t&lt;/em&gt; worry about is how
I’m going to make the 30 different sizes of my app’s icon. That’s because &lt;a href=&quot;http://appiconmaker.co&quot;&gt;App Icon Maker&lt;/a&gt;
is available. It’s free, it’s super easy, it has a good privacy policy, and it’ll take a 1024x1024 icon PNG and
generate all the rest of the sizes from it perfectly.&lt;/p&gt;

&lt;p&gt;They are awesome. Go click on one of their ads to help them keep this fantastic service running.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>JIRA::Client::Automated v1.7</title>
   <link href="http://www.frimicc.com/2018/04/10/jira-client-automated/"/>
   <updated>2018-04-10T00:00:00+00:00</updated>
   <id>http://www.frimicc.com/2018/04/10/jira-client-automated</id>
   <content type="html">&lt;p&gt;My old CPAN module for automating JIRA workflows too complex even for JIRA’s website, JIRA::Client::Automated, has been updated to version 1.7. The change is minor – fixing a couple of bugs and updating the links to match the new JIRA documentation website. However it’s still a useful module and is being used by several companies to make their JIRA lives easier.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://metacpan.org/pod/JIRA%3A%3AClient%3A%3AAutomated&quot;&gt;JIRA::Client::Automated on MetaCPAN&lt;/a&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Taking iOS Simulator Screenshots</title>
   <link href="http://www.frimicc.com/2018/04/06/taking-ios-simulator-screenshots/"/>
   <updated>2018-04-06T00:00:00+00:00</updated>
   <id>http://www.frimicc.com/2018/04/06/taking-ios-simulator-screenshots</id>
   <content type="html">&lt;p&gt;&lt;img src=&quot;/public/images/iOS_simulator_optimize_for_window_size.png&quot; alt=&quot;Screenshot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When you are taking screenshots of your app to upload to the App Store, be sure you go into the Simulator and turn off “Debug” -&amp;gt; “Optimize Rendering for Window Size”.&lt;/p&gt;

&lt;p&gt;What that does is change the pixel size of the image on the screen to match the pixels of the window in which it is displayed. The upside of that is that the simulator renders faster and looks good on the screen. The downside is that when you take a screenshot, it comes out as the wrong size, because it’s a screenshot of the pixels at desktop resolution instead of iOS device resolution. Thus you will get “Screenshots are the wrong size” errors when you try to upload them to the store.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Announcing Hex Map Maker</title>
   <link href="http://www.frimicc.com/2018/04/02/announcing-hex-map-maker/"/>
   <updated>2018-04-02T00:00:00+00:00</updated>
   <id>http://www.frimicc.com/2018/04/02/announcing-hex-map-maker</id>
   <content type="html">&lt;p&gt;Today marks the release of version 1.0 of Hex Map Maker, a new app for iOS that lets you easily make printable
wilderness hex maps for old-school role-playing games. (OSR RPG, for the searchers among you)&lt;/p&gt;

&lt;p&gt;I created this app because I wanted a better way to generate hex-based maps on my own iPad and iPhone. There are
some great products out there, like Campaign Cartographer and Hexographer, but those are expensive and don’t run on
iOS. I wanted something that would let me zoom and pan and update maps on my iPad at the gaming table. It didn’t
have to be fancy, but it couldn’t be expensive, so I spent a week and built what I wanted. That’s the advantage of
being an iOS developer. 😀&lt;/p&gt;

&lt;p&gt;See the &lt;a href=&quot;/hexmapmaker/&quot;&gt;Hex Map Maker page&lt;/a&gt; on this site for more details and a link to download it from the iOS App Store.&lt;/p&gt;

&lt;p&gt;If you’re interested in the development details…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;All app development was done on my kids’ 6-year-old Macbook Pro with a dead battery, proving you don’t need the latest equipment to make an app.&lt;/li&gt;
  &lt;li&gt;The app is written entirely in Swift 4, using both storyboards and in-code UI.&lt;/li&gt;
  &lt;li&gt;The source code is private, in case I decide to add more features later and charge an in-app purchase for them.&lt;/li&gt;
  &lt;li&gt;Testing was performed on at least six physical devices plus the simulator. If you have issues on your devices, please let me know.&lt;/li&gt;
  &lt;li&gt;It took me about 50 hours of writing code, learning SpriteKit, making graphics, and testing to get this to 1.0.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And, finally, this app is not related to my employer in any way.&lt;/p&gt;

&lt;p&gt;As they say, there are many apps in the App Store, but this one’s mine. Enjoy!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Coming Soon!</title>
   <link href="http://www.frimicc.com/2018/03/20/coming-soon/"/>
   <updated>2018-03-20T00:00:00+00:00</updated>
   <id>http://www.frimicc.com/2018/03/20/coming-soon</id>
   <content type="html">&lt;p&gt;Welcome to my new home on the web! More content coming soon, especially pages for my upcoming app Hex Map Maker.&lt;/p&gt;

</content>
 </entry>
 

</feed>
