Written by Ryan D'souza
iMessage Analyzer - Mac App
Analyzes a user's iMessages while providing cool functionality
Analyzes a user's iMessage database (chat.db*) to understand a user and their friends' messaging habits by graphing (and calculating statistics) on those characteristics.
Adds some unique functionality from Messages.app that provides a better experience, including a refined search for messages.
*chat.db, where a user's messages are stored, can be found in 2 ways:
- Where Messages.app (Apple's official Messages.app - iMessage for Mac) stores its data
- Where the iPhone's chat.db database is stored after a backup to the computer
Newest features
- Double messages: See who sends the most followup messages; defined as successive messages sent by the same person within 3 minutes to 8 hours of the last message send time
- Conversation starters: See who starts the most conversations; defined as who messages first after 8 hours of the last message in the conversation
Current Features:
- Looks like iMessage
- Contacts tableview on left side with contact name + profile picture
- iMessages you sent are in blue on the right side of messages panel
- Normal text messages you send are in green
- iMessages you received are in gray on the left side of messages panel
- Shows each message's date/time and read receipts
Unique from iMessage Features
-
Loads all of a user's messages (as opposed to scrolling up forever to see the first few messages)
- Still memory efficient and quick for large conversations
- Tested on conversations with > 26,000 messages
- Tested on total messages > 60,000
- Barely uses 110MB of RAM
- Minimal CPU usage
- Still memory efficient and quick for large conversations
-
Searching for text shows conversations
- With text that matches the conversation
- With contact names/numbers/emails that match the text
- Still (somehow) quicker than iMessage's search for conversations with text
- Searched text is highlighted in yellow
- Pressing enter moves to the next occurrence of that text
-
View messages sent and received on a certain date for a conversation
- Calendar view pops up and a date can be chosen to view all messages with that conversant on
- Pressing "Reset to All" shows all messages with person
-
Double clicking on contact in Contacts Tableview on the left shows
- Total number of messages you sent and received in that conversation
- Option to perform More Analysis
-
More Analysis
- Shows the following for All Time or on a specific date
- Words organized by frequency/occurrence for each person
- Uses a Heap Data Structure I wrote
- Total number of messages sent and received
- Total number of words sent and received
- Average word per message sent and received
- Date selected from calendar view on bottom left
- The actual messages sent and received
- The number of double messages for each conversant: defined as two successive messages sent by the same person between 3 minutes and 8 hours of the last message sent
- The number of times each conversant started a conversation: defined by who sends the first message at least 8 hours after the last message was sent/received
- Words organized by frequency/occurrence for each person
- Shows the following for All Time or on a specific date
-
Graphs and charts
- Line graph of messages with that person since your first message
- Allows for zooming in on specific date ranges
- Data can be changed to show
- Messages with that person compared to all other messages sent during that time period
- Your sent vs received messages with that person over time
- Your sent vs received words with that person over time
- Pie Chart
- Sent messages vs received messages with person
- Sent words vs received words with that person
- Total messages with person vs all other messages in inbox
- Bar Chart
- Sent vs received messages per hour of day --> When y'all talk the most
- Sent vs received words per hour of day --> When y'all talk the most
- Percentage of total messages with person per hour of day vs percentage of all other messages with other people per hour of day --> When y'all talk the most in comparison to when you mainly talk to everyone else
- Line graph of messages with that person since your first message
Features in implementation:
- Statistics on actual messaging habits
- Average reply time over the course of a day
- Autoreply based on replies to certain messages --> Machine Learning
Screenshots
- Scroll to the bottom to see beginning flow
A graph of all messages with a person over the course of a year. This person seems like a good friend
Clicking on a point shows the y-value above it.
Graphing message frequency with another one. This seems like a broken-off friendship
Overlaying the messages with a friend (white) with all other messages on that day (green)
Pie chart of sent vs received messages
Pie chart of sent vs received words
Pie chart of total messages to that person vs all other messages
When y'all send the most amount of messages to each other throughout the day
When y'all type the most to each other throughout the day
That conversation vs all other conversations throughout the day
A percentage breakdown of that conversation vs all other conversations throughout the day
How that can vary from person to person
-
Shows all messages sent and received
-
Shows the total word count, sent and received
-
Shows the average word per message
-
Shows all words for each participant in order of freuency
-
All messages are displayed on tableview at bottom of the screen
Clicking on a date in the calendar on the bottom left - Shows above statistics but on that date + Includes recalculating word frequencies, words sent and received on date, and average word/message on date ("Avg. Word/Message (D)") - Shows messages sent on that day - Pressing "Clear" resets everything to the initial screen
View full conversations - all at once - with a person, starting from the first interaction Also shows delivered/read receipts for each person
View messages sent on a certain date (no messages)
View messages sent on a certain date (messages)
Searching for text brings up contacts + contacts with messages that match the text. Pressing Enter brings up the next text occurence. Message occurrences are highlighted in yellow and pressing enter scrolls to the next occurrence
Attachments sent are shown in a message. Clicking on them opens a popup with that attachment
For multiple attachments in a message, the popup allows scrolling through each attachment as well as the ability to open each attachment in the right application
Movie attachments and PDFs are also shown and movies begin playing automatically
Double clicking a contact shows quick statistics and gives the option to view more icon (circle icon)