<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    
    <title>Bo</title>
    
    
    <description>Bo's engineering notes</description>
    
    <link>https://hubo.dev/</link>
    <atom:link href="https://hubo.dev/feed.xml" rel="self" type="application/rss+xml" />
    
      <item>
        <title>Build and Run Telegram-iOS v7.3 in Simulator with Bazel</title>
        <description>
          
          Telegram-iOS released v7.3 last week with the new group voice chats and other improvements. My previous post about building and running in Simulator is not working for several reasons: Buck is broken on Big Sur. The latest version 2020.10.21.01 gives an internal error as reported by facebook/buck#2491. Big Sur ships...
        </description>
        <pubDate>Mon, 28 Dec 2020 19:06:00 -0800</pubDate>
        <link>https://hubo.dev/2020-12-28-build-and-run-telegram-ios-v7-3-on-simulator-with-bazel/</link>
        <guid isPermaLink="true">https://hubo.dev/2020-12-28-build-and-run-telegram-ios-v7-3-on-simulator-with-bazel/</guid>
      </item>
    
      <item>
        <title>&quot;Magic Trick&quot; of Galaxy App Booster</title>
        <description>
          
          I happened to try an app called Galaxy App Booster that is a part of Galaxy Labs released by Samsung. It claims that it can optimize all apps on device and boost the overall performance by 5% to 15%. It’s attractive and many users are using it on non-Samsung phones...
        </description>
        <pubDate>Wed, 25 Nov 2020 00:59:00 -0800</pubDate>
        <link>https://hubo.dev/2020-11-25-magic-tricks-of-samsung-app-booster-revealed/</link>
        <guid isPermaLink="true">https://hubo.dev/2020-11-25-magic-tricks-of-samsung-app-booster-revealed/</guid>
      </item>
    
      <item>
        <title>Build and Run Telegram-iOS v7.2 in Xcode 12.x Simulator with Buck</title>
        <description>
          
          Telegram started the program of “Reproducible Builds for iOS and Android” to release its client source code in a more regular schedule. Although it’s a great move, you may find it’s still confusing how to build and run the iOS project with minimal effects. The official guide is present to...
        </description>
        <pubDate>Fri, 20 Nov 2020 05:19:00 -0800</pubDate>
        <link>https://hubo.dev/2020-11-20-build-and-run-telegram-on-xcode-12-x-simulator/</link>
        <guid isPermaLink="true">https://hubo.dev/2020-11-20-build-and-run-telegram-on-xcode-12-x-simulator/</guid>
      </item>
    
      <item>
        <title>Porting Dual-Pivot Sort and Timsort from Java to Go</title>
        <description>
          
          Most programming languages provide sorting APIs in their built-in libraries. Java and Go use different sorting algorithms, I implemented Java’s algorithms in Go with different approaches as an exercise. It’s a fun way to understand some design choices in both languages. TLDR Go uses a mixed algorithm with quicksort, heap...
        </description>
        <pubDate>Sun, 15 Nov 2020 00:23:00 -0800</pubDate>
        <link>https://hubo.dev/2020-11-15-porting-dual-pivot-sort-and-timsort-from-java-to-go/</link>
        <guid isPermaLink="true">https://hubo.dev/2020-11-15-porting-dual-pivot-sort-and-timsort-from-java-to-go/</guid>
      </item>
    
      <item>
        <title>Source Code Walkthrough of Telegram-iOS Part-7: Link Preview and Instant View</title>
        <description>
           - 
          Telegram builds a set of features to make users consume content inside the app. This article explains why Telegram needs these features and how they are implemented efficiently. Content Platform in Messenger Before we dive into the technical details, we could think about the role of the content platform from...
        </description>
        <pubDate>Sun, 12 Jul 2020 00:00:00 -0700</pubDate>
        <link>https://hubo.dev/2020-07-12-source-code-walkthrough-of-telegram-ios-part-7/</link>
        <guid isPermaLink="true">https://hubo.dev/2020-07-12-source-code-walkthrough-of-telegram-ios-part-7/</guid>
      </item>
    
      <item>
        <title>Source Code Walkthrough of Telegram-iOS Part 6: Bubbles</title>
        <description>
           - 
          Bubbles is a type of UI that‘s almost an integral part of our daily life. It’s a trivial job if a message is either a piece of plain text or one image file. The problem in Telegram is difficult as there are many message elements, such as texts, styled texts,...
        </description>
        <pubDate>Mon, 22 Jun 2020 00:00:00 -0700</pubDate>
        <link>https://hubo.dev/2020-06-22-source-code-walkthrough-of-telegram-ios-part-6/</link>
        <guid isPermaLink="true">https://hubo.dev/2020-06-22-source-code-walkthrough-of-telegram-ios-part-6/</guid>
      </item>
    
      <item>
        <title>Source Code Walkthrough of Telegram-iOS Part 5: AsyncDisplayKit</title>
        <description>
           - 
          Telegram-iOS builds most UIs upon AsyncDisplayKit. It’s folked as a submodule of the project, in which many features have been removed and some of them are re-implemented in Swift. This post talks about the component structure and the UI programming pattern in the project. 1. Overview AsyncDisplayKit is an asynchronous...
        </description>
        <pubDate>Sun, 14 Jun 2020 00:00:00 -0700</pubDate>
        <link>https://hubo.dev/2020-06-14-source-code-walkthrough-of-telegram-ios-part-5/</link>
        <guid isPermaLink="true">https://hubo.dev/2020-06-14-source-code-walkthrough-of-telegram-ios-part-5/</guid>
      </item>
    
      <item>
        <title>Source Code Walkthrough of Telegram-iOS Part 4: MTProto Connections</title>
        <description>
           - 
          TCP is the only active MTProto transport on Telegram-iOS as I explained in the previous post. Let’s continue with the implementation details of connection management for MTProto. The major parts of network code reside in modules TelegramCore and MTProtoKit. I started my reading to answer a simple question: How many...
        </description>
        <pubDate>Fri, 05 Jun 2020 00:00:00 -0700</pubDate>
        <link>https://hubo.dev/2020-06-05-source-code-walkthrough-of-telegram-ios-part-4/</link>
        <guid isPermaLink="true">https://hubo.dev/2020-06-05-source-code-walkthrough-of-telegram-ios-part-4/</guid>
      </item>
    
      <item>
        <title>Source Code Walkthrough of Telegram-iOS Part 3: Other Foundations</title>
        <description>
           - 
          Let me use one more post to finish the introduction of the foundation modules of the project. Logging The module TelegramCore provides a simple logging implementation. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public final class Logger {...
        </description>
        <pubDate>Fri, 15 May 2020 00:00:00 -0700</pubDate>
        <link>https://hubo.dev/2020-05-15-source-code-walkthrough-of-telegram-ios-part-3/</link>
        <guid isPermaLink="true">https://hubo.dev/2020-05-15-source-code-walkthrough-of-telegram-ios-part-3/</guid>
      </item>
    
      <item>
        <title>Source Code Walkthrough of Telegram-iOS Part 2: SSignalKit</title>
        <description>
           - 
          Telegram-iOS uses reactive programming in most modules. There are three frameworks to achieve reactive functions inside the project: MTSignal: it might be their first attempt for a reactive paradigm in Objective-C. It’s mainly used in the module MtProtoKit, which implements MTProto, Telegram’s mobile protocol. SSignalKit: it’s a descendant of MTSignal...
        </description>
        <pubDate>Mon, 11 May 2020 00:00:00 -0700</pubDate>
        <link>https://hubo.dev/2020-05-11-source-code-walkthrough-of-telegram-ios-part-2/</link>
        <guid isPermaLink="true">https://hubo.dev/2020-05-11-source-code-walkthrough-of-telegram-ios-part-2/</guid>
      </item>
    
      <item>
        <title>Source Code Walkthrough of Telegram-iOS: Part 1</title>
        <description>
           - 
          Telegram is one of the most popular instant messengers in the market. As of April this year, its MAU has passed 400 million. It’s a great achievement considering its service is not available in some countries. Most Telegram client apps are open-sourced to prove its gene of security. They also...
        </description>
        <pubDate>Thu, 07 May 2020 00:00:00 -0700</pubDate>
        <link>https://hubo.dev/2020-05-07-source-code-walkthrough-of-telegram-ios-part-1/</link>
        <guid isPermaLink="true">https://hubo.dev/2020-05-07-source-code-walkthrough-of-telegram-ios-part-1/</guid>
      </item>
    
      <item>
        <title>Safe Type Casting in Objective-C with 'instancetype'</title>
        <description>
          
          instancetype is a relative new keyword in Objective-C language. Besides its general usage scenarios, it can be leveraged for safe casting. The approach is simply a category to NSObject: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21...
        </description>
        <pubDate>Mon, 31 Mar 2014 23:11:00 -0700</pubDate>
        <link>https://hubo.dev/2014-03-31-safe-type-casting-in-objective-c-with-instancetype/</link>
        <guid isPermaLink="true">https://hubo.dev/2014-03-31-safe-type-casting-in-objective-c-with-instancetype/</guid>
      </item>
    
      <item>
        <title>Part I: How to Choose a JavaScript Engine for iOS and Android Development</title>
        <description>
          
          DISCLAIMER: the post contains my personal opinions on the subject. I would appreciate it if you could correct my mistakes. Back to the time when I started OpenAphid-Engine, there were already several similar iOS/Android projects. These projects, either commercial or open source, expose their core features by JavaScript language. For...
        </description>
        <pubDate>Thu, 17 Jan 2013 15:30:00 -0800</pubDate>
        <link>https://hubo.dev/2013-01-17-part-i-how-to-choose-a-javascript-engine-for-ios-and-android-apps/</link>
        <guid isPermaLink="true">https://hubo.dev/2013-01-17-part-i-how-to-choose-a-javascript-engine-for-ios-and-android-apps/</guid>
      </item>
    
      <item>
        <title>OpenAphid-Engine v0.2.1f Release and Discontinuation Announcement</title>
        <description>
          
          OpenAphid-Engine was born as an exploration project at the first half year of 2012 when I quit my day job. Its mission was to figure out the most efficient way to integrate a full JavaScript engine within native iOS/Android games. The development went perfectly well as it even outperformed the...
        </description>
        <pubDate>Mon, 14 Jan 2013 14:09:00 -0800</pubDate>
        <link>https://hubo.dev/2013-01-14-openaphid-engine-v0-dot-2-1f-and-discontinuation-announcement/</link>
        <guid isPermaLink="true">https://hubo.dev/2013-01-14-openaphid-engine-v0-dot-2-1f-and-discontinuation-announcement/</guid>
      </item>
    
      <item>
        <title>FlipView for Android v0.9.7 Released</title>
        <description>
          
          FlipView v0.9.7 is released with various performance improvements and bug fixes. Happy New Year 2013! Release Notes For a complete change list please checkout our issue tracker v0.9.7, Jan 1th 2012 The core control flow has been rewritten, which fixes several performance and reliability issues about adapter and async content...
        </description>
        <pubDate>Wed, 02 Jan 2013 14:26:00 -0800</pubDate>
        <link>https://hubo.dev/2013-01-02-flipview-for-android-v0-dot-9-7-released/</link>
        <guid isPermaLink="true">https://hubo.dev/2013-01-02-flipview-for-android-v0-dot-9-7-released/</guid>
      </item>
    
      <item>
        <title>FlipView for Android v0.9.6 Released</title>
        <description>
          
          FlipView v0.9.6 is released with various bug fixes and enhancements. Release Notes For a complete change list please checkout our issue tracker v0.9.6, Dec 12th 2012 New Features: Adds fling support. (Pull #10, Issue #20) Adds XML configuration support. (Issue #13) Adds several new demos. Bug Fixes Fixes several bugs...
        </description>
        <pubDate>Wed, 12 Dec 2012 15:59:00 -0800</pubDate>
        <link>https://hubo.dev/2012-12-12-flipview-for-android-v0-dot-9-6-released/</link>
        <guid isPermaLink="true">https://hubo.dev/2012-12-12-flipview-for-android-v0-dot-9-6-released/</guid>
      </item>
    
      <item>
        <title>FlipView for Android v0.9 Beta Released</title>
        <description>
          
          I’m happy to announce the first release of FlipView, an Android UI component which help add flipping animation in your application. Please download and install the pre-built demo APK file to check out it in action: https://github.com/openaphid/android-flip/tree/master/FlipView/Demo/APK I’m also glad to use some pictures captured during my trip to build...
        </description>
        <pubDate>Fri, 21 Sep 2012 15:11:00 -0700</pubDate>
        <link>https://hubo.dev/2012-09-21-aphid-flipview-for-android-v0-dot-9-beta-released/</link>
        <guid isPermaLink="true">https://hubo.dev/2012-09-21-aphid-flipview-for-android-v0-dot-9-beta-released/</guid>
      </item>
    
      <item>
        <title>How to Handle Touch Events in Flip Animation</title>
        <description>
          
          ** Updates at 2012-12-12: ** Please checkout FlipView for an improved solution. This short post explains how to handle touch events for the flip animation introduced in our previous post. The full source codes of the demo application are available at Github: https://github.com/openaphid/android-flip/tree/master/Legacy/Demo-Touch/ A pre-built APK file is also present...
        </description>
        <pubDate>Fri, 27 Jul 2012 23:20:00 -0700</pubDate>
        <link>https://hubo.dev/2012-07-27-how-to-handle-touch-events-for-flip-animation/</link>
        <guid isPermaLink="true">https://hubo.dev/2012-07-27-how-to-handle-touch-events-for-flip-animation/</guid>
      </item>
    
      <item>
        <title>Tutorial: Exposing Java Methods to JavaScript in OpenAphid-Engine</title>
        <description>
          
          OpenAphid-Engine for Android v0.1.5 supports exposing Java methods as JavaScript functions, which is helpful for integrating 3rd-party services into games. The binding APIs are similar to its iOS version. How to Expose Java Methods to JavaScript Any public Java methods with supported return type and parameter types, can be exposed...
        </description>
        <pubDate>Tue, 10 Jul 2012 14:39:00 -0700</pubDate>
        <link>https://hubo.dev/2012-07-10-tutorial-exposing-java-methods-to-javascript-in-openaphid/</link>
        <guid isPermaLink="true">https://hubo.dev/2012-07-10-tutorial-exposing-java-methods-to-javascript-in-openaphid/</guid>
      </item>
    
      <item>
        <title>OpenAphid-Engine Android v0.1.5 Released</title>
        <description>
          
          We’re pleased to release v0.1.5 of OpenAphid-Engine Android.

Highlights of this release includes:


  
    Support multitouch on Android
  
  
    Enhanced single touch handling when multiple fingers are on screen
  
  
    Public APIs for Java to JavaScript method binding
  


https://github.com/openaphid/Demos is also updated with two new demos: touch_test.js and binding_test.js

        </description>
        <pubDate>Mon, 09 Jul 2012 15:02:00 -0700</pubDate>
        <link>https://hubo.dev/2012-07-09-openaphid-android-v0-dot-1-5-released/</link>
        <guid isPermaLink="true">https://hubo.dev/2012-07-09-openaphid-android-v0-dot-1-5-released/</guid>
      </item>
    
  </channel>
</rss>
